Index-regisztráció - Index register
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