logo
AOM / Мельник А

9.2.1. Типи регістрових файлів

Регістровий файл (надоперативна пам'ять) - це набір програмно-доступних ре­гістрів, які знаходяться в регістровій пам'яті процесора. В сучасних процесорах регі­стровий файл займає одне з центральних місць. Він використовується для локального збереження операндів, адрес команд та даних, індексів, а також дозволяє організовува­ти ефективний обмін даними між операційними пристроями процесора та основною пам'яттю. Вибір ефективної організації регістрового файла є одним із підходів, що до­зволяє підвищити продуктивність комп'ютера. Як правило, організація регістрового файла належить до технічних характеристик комп'ютера.

Розглянемо деякі історичні аспекти розвитку організації регістрового файла про­цесора. Програмно-доступні регістри почали використовуватися з початку 1960-х років. В 1964 році фірма IBM розробила серію універсальних комп'ютерів ІВМ/360 для наукових та комерційних розрахунків, в процесорах яких був використаний регістровий файл, що включав 16 32-розрядних цілочисельних регістрів та 16 64-розрядних регістрів з рухо­мою комою. Також в 1964 році був виготовлений перший суперкомп'ютер для наукових розрахунків CDC6600, процесор якого мав регістровий файл, що включав 24 регістри. В 1977 році був спроектований перший векторний суперкомп'ютер Сгау-1, регістровий файл якого мав ієрархічну структуру. Його було поділено на файл основних регістрів і файл другорядних (фонових) регістрів. Кількість основних регістрів була меншою, що дозволяло забезпечити швидкий доступ до них, тоді як кількість другорядних регістрів була більшою, проте доступ до них був повільнішим. Операнди тривалого зберігання розміщувалися в другорядних регістрах і переміщувалися в основні регістри при потре­бі їх використання. Сгау-1 загалом містив 656 регістрів даних і адрес (включаючи век­торні регістри, але не враховуючи регістрів керування). На особливу увагу заслуговує група з восьми векторних регістрів. Кожний такий регістр міг вміщувати 64-х елемент­ний вектор з рухомою комою. Однією 16-ти розрядною командою можна було додати, відняти чи перемножити два вектори.

З наведених прикладів видно, що для організації високопродуктивних обчислень важливо не тільки мати велику кількість регістрів, але і забезпечити швидкий доступ до даних, які в них зберігаються, за рахунок ефективної організації регістрового файлу.

Розглянемо наведені на рис. 9.9 типи регістрових файлів детальніше.

На рис. 9.9 приведена класифікація типів регістрових файлів процесора. В них вико­ристовується статична організація збереження даних, тобто при записі і читанні даних вказується безпосередня адреса регістра, яка є незмінною під час виконання програми.

316