二極管矩陣是一個二維的電線網格:每一個 "交叉點",即一行與另一行交叉的地方,要麼有一個二極管連接它們,要麼這些電線是相互隔離的。

它是實現只讀存儲器的最流行的技術之一。二極管矩陣在許多早期計算機中被用作控制存儲微程序。在許多現代微處理器中,邏輯上等同的"'電晶體矩陣'"仍被用作控制存儲或微程序或 "解碼ROM"。

在任何一個瞬間,二極管矩陣(或電晶體矩陣)的單行被激活。 電荷流過連接到該行的每個二極管。這激活了與每一行對應的列。在該瞬間,唯一被激活的控制信號是那些其對應的列線與該行的二極管相連的信號。

歷史

編輯

二極管矩陣ROM在20世紀60年代和70年代被用於許多計算機,以及電子桌計算器計算機終端鍵盤矩陣電路。鍵盤矩陣電路有一個非常相似的二極管網格,但使用方式不同。

許多早期計算機的微序器,也許從旋風I開始,只是依次激活二極管矩陣的每一行,在最後一行被激活後,從第一行重新開始。

Maurice Wilkes首次描述的微編程技術,是在二極管矩陣控制商店中加入第二個二極管矩陣。[1]後來的計算機使用了各種控制存儲的替代實現方式,但最終還是回到了二極管矩陣或電晶體矩陣。一個人可以通過在線和線的選定交叉點上手動連接二極管,對這類早期計算機的控制存儲進行微編程。在原理圖中,字線通常是水平的,位線通常是垂直的。

一些微型計算機上的控制存儲器是一個或多個可程式邏輯陣列晶片。晶片製造商提供的 "空白 "PLA帶有一個二極管矩陣或電晶體矩陣,每個交叉點都有一個二極管(或電晶體)。一個人可以通過破壞選定交叉點上不需要的連接來對這些計算機的控制存儲進行微編程。

一些現代微處理器和ASIC使用二極管矩陣或電晶體矩陣控制存儲。通常情況下,設計一個空白網格,在每個交叉點都有一個二極管(或電晶體),然後準備一個掩碼,在選定的交叉點上剔除不需要的連接。當逆向工程集成電路包括這樣一個掩膜編程的解碼ROM時,其中一個關鍵步驟是對該ROM進行拍照,其解像度要足以分開每個交叉點,並有足夠的顏色深度來區分 "連接 "和 "不連接 "的交叉點。[2][3]

由於控制存儲處於計算機執行的關鍵路徑上,快速的控制存儲是快速計算機的重要組成部分。有一段時間,控制存儲比程序存儲器快很多倍,允許每條指令獲取時通過控制存儲的長而複雜的步驟序列,導致了現在所謂的複雜指令集計算。後來的快速指令緩存技術將緩存的速度提高到了控制存儲只比指令緩存快幾倍的地步,導致在簡化指令集計算中,每條指令的獲取只需要通過控制存儲的一個步驟[1]

參見

編輯

外部連結

編輯

參考文獻

編輯
  1. ^ 1.0 1.1 Mark Smotherman, "A Brief History of Microprogramming", 1999. cs.clemson.edu頁面存檔備份,存於互聯網檔案館), staff.ncl.ac.uk 互聯網檔案館存檔,存檔日期2011-06-07.
  2. ^ www.Visual6502.org. visual6502.org. [2022-03-14]. (原始內容存檔於2022-05-26). 
  3. ^ Breaking copy protection in microcontrollers. www.cl.cam.ac.uk. [2022-03-14]. (原始內容存檔於2017-10-22).