Index-regisztráció - Index register

Index regiszter megjelenítése az IBM 7094 nagygépen a hatvanas évek elejétől.

Az index regiszter a számítógép CPU - jában egy processzor regiszter vagy hozzárendelt memóriahely, amelyet az operandus címek módosításához használnak egy program futtatása során. Ez hasznosnak bizonyult vektor / tömb műveletek elvégzéséhez, valamint a rekordok mezőről mezőre történő navigálásához a kereskedelmi adatfeldolgozásban. Az indexregiszterek mindkét felhasználásnál jelentősen csökkentették a felhasznált memória mennyiségét és megnövelte a végrehajtási sebességet.

Az index regiszter tartalmát hozzáadják (egyes esetekben levonják) azonnali címhez (amely az utasítás része), hogy a tényleges adatok (operandus) "tényleges" címét képezzék. Az index regiszter teszteléséhez általában speciális utasításokat adnak, és ha a teszt nem sikerül, akkor az index regisztert azonnali konstanssal növeli és elágazik, általában a hurok elejéig. Egyes utasításkészletek lehetővé teszik egynél több index regiszter használatát; ebben az esetben további utasításmezők adják meg, hogy mely indexregisztereket kell használni. Míg általában azok a processzorok, amelyek lehetővé teszik az utasítások számára, hogy több index-regisztert adjanak meg, összeadják a tartalmat, az IBM-nek volt egy sor számítógépe, amelyekben a tartalom együtt volt.

A közvetett címzés nélküli forma korai számítógépein a tömb műveleteket az utasítás címének módosításával kellett végrehajtani , amely több további programlépést igényelt, és több számítógépes memóriát használt fel, amely szűkös erőforrás volt a korai számítógépes telepítésekben (valamint két évtizeddel később).

Történelem

Az index regisztereket, amelyeket a korai brit számítógépeknél általában B-vonalként ismernek, 1949-ben használták először a brit Manchester Mark 1 számítógépben. Általánosságban az index regiszterek a technológia második generációja, nagyjából 1954–1966 között váltak a számítógépek szokásos részévé . Az IBM 700/7000 nagyszámítógép- sorozat legtöbb gépének megvolt, az 1954-es IBM 704- től kezdődően , bár néhány kisebb gépen, például az IBM 650-nél és az IBM 1401-nél, opcionálisak voltak .

Korai „kisgépek” index regiszterek tartalmazzák az AN / USQ-17 , 1960 körül, és a 9 sorozat a valós idejű számítógépek származó Scientific Data Systems , a korai 1960-as években.

Míg az Intel 8080 lehetővé tette a közvetett címzést egy regiszteren keresztül, az első mikroprocesszor valódi index-regiszterrel a Motorola 6800 volt , és a hasonló MOS Technology 6502 két ilyen regisztert jól használt.

A modern számítógépes tervek általában nem tartalmaznak dedikált index-regisztereket; ehelyett lehetővé teszik, hogy az általános célú nyilvántartások tartalmazzanak egy címet, és lehetővé teszik az állandó értéket, és egyes gépeken egy másik regiszter tartalmát hozzáadják hozzá offszetként a tényleges cím kialakításához. Az így tervezett korai számítógépek közé tartozik a PDP-6 és az IBM System / 360 .

Példa

Íme egy egyszerű példa az index regiszter használatára az összeállítási nyelv álkódjában, amely összegez egy 100 bejegyzési tömböt 4 bájtos szavakkal:

   Clear_accumulator
   Load_index 400,index2  //load 4*array size into index register 2 (index2)
loop_start : Add_word_to_accumulator array_start,index2   //Add to AC the word at the address (array_start + index2)
   Branch_and_decrement_if_index_not_zero loop_start,4,index2   //loop decrementing by 4 until index register is zero

Lásd még

Megjegyzések

Hivatkozások