Багатофункціональна обчислювальна система
Номер патенту: 44229
Опубліковано: 25.09.2009
Автори: Рябчун Сергій Григорович, Булавенко Олег Миколайович, Якуба Анатолій Олександрович, Любарський Валерій Федорович
Формула / Реферат
1. Багатофункціональна обчислювальна система, що містить обчислювальні блоки, модулі спільної пам'яті, керуючий процесор, головний комутатор, комутатор коротких повідомлень, блоки обробки, причому перша група входів-виходів кожного з обчислювальних блоків з'єднана відповідно з групою входів-виходів головного комутатора та комутатора коротких повідомлень, друга група входів-виходів кожного з обчислювальних блоків з'єднана відповідно з першою групою входів-виходів керуючого процесора, третя група входів-виходів кожного з обчислювальних блоків з'єднана відповідно з групою входів-виходів кожного з модулів спільної пам'яті, група входів-виходів кожного з модулів спільної пам'яті з'єднана відповідно з групами входів-виходів головного комутатора, кожна з відповідних груп керуючих виходів комутатора коротких повідомлень з'єднана відповідно з групою керуючих входів кожного з обчислювальних блоків, входи-виходи блоків обробки з'єднані відповідно з входами-виходами керуючого процесора, вхід-вихід керуючого процесора формує вхід-вихід обчислювальної системи, яка відрізняється тим, що система додатково містить співпроцесори і блоки спільної пам'яті, причому перша група входів-виходів кожного співпроцесора з'єднана відповідно з входом-виходом керуючого процесора, друга група входів-виходів кожного співпроцесора з'єднана відповідно з першою групою входів-виходів блоків спільної пам'яті, а друга група входів-виходів блоків спільної пам'яті з'єднана відповідно з групою входів-виходів головного комутатора.
2. Система за п. 1, яка відрізняється тим, що співпроцесор містить інтерфейс із керуючим процесором, інтерфейс з основною пам'яттю, кеш команд і даних L2, кеш команд L1, блок запиту, буфер команд, блок вибірки команд, блок конфігурації, ПЗП команд, диспетчер, дешифратор команд, блок вибірки операндів, файл регістрів, арифметико-логічний пристрій, блок завантаження/збереження, кеш даних L1, причому група виходів інтерфейсу з керуючим процесором з'єднана з першою групою входів диспетчера і з групою входів блока вибірки команд, перша група входів-виходів інтерфейсу з основною пам'яттю з'єднана з групою входів-виходів кеша команд і даних L2, група виходів кеша команд і даних L2 з'єднана з першою групою входів кеша команд L1, група виходів кеша команд L1 з'єднана з першою групою входів буфера команд, група виходів блока запиту з'єднана з другою групою входів кеша команд L1, перша група виходів буфера команд з'єднана з групою входів блока запиту, друга група виходів буфера команд з'єднана з другою групою входів диспетчера, третя група виходів буфера команд з'єднана з першою групою входів блока вибірки операндів, перша група виходів блока вибірки команд з'єднана з третьою групою входів кеша команд L1 і з групою входів ПЗП команд, друга група виходів блока вибірки команд з'єднана з другою групою входів буфера команд, третя група виходів блока вибірки команд з'єднана з першою групою входів арифметико-логічного пристрою, група входів-виходів блока вибірки команд з'єднана з першою групою входів-виходів диспетчера, група виходів блока конфігурації з'єднана з другою групою входів арифметико-логічного пристрою, група виходів ПЗП команд з'єднана з третьою групою входів буфера команд, перша група виходів диспетчера з'єднана з групою входів дешифратора команд, друга група виходів диспетчера з'єднана з другою групою входів блока вибірки операндів, друга група входів-виходів диспетчера з'єднана з першою групою входів-виходів блока завантаження/збереження, група виходів дешифратора команд з'єднана з групою входів блока конфігурації, з третьою групою входів арифметико-логічного пристрою і з третьою групою входів блока вибірки операндів, перша група виходів блока вибірки операндів з'єднана з четвертою групою входів арифметико-логічного пристрою, друга група виходів блока вибірки операндів з'єднана з першою групою входів файла регістрів, перша група виходів файла регістрів з'єднана з п'ятою групою входів арифметико-логічного пристрою, друга група виходів файла регістрів з'єднана з групою входів блока завантаження/збереження, перша група виходів арифметико-логічного пристрою з'єднана з другою групою входів файла регістрів, друга група виходів арифметико-логічного пристрою з'єднана з групою входів інтерфейсу з керуючим процесором, група виходів блока завантаження/збереження з'єднана з третьою групою входів файла регістрів, друга група входів-виходів блока завантаження/збереження з'єднана з першою групою входів-виходів кеша даних L1, друга група входів-виходів кеша даних L1 з'єднана з другою групою входів-виходів кеша команд і даних L2, група входів-виходів інтерфейсу з керуючим процесором формує перший вхід-вихід співпроцесора, друга група входів-виходів інтерфейсу з основною пам'яттю формує другий вхід-вихід співпроцесора.
Текст
1. Багатофункціональна обчислювальна система, що містить обчислювальні блоки, модулі спільної пам'яті, керуючий процесор, головний комутатор, комутатор коротких повідомлень, блоки обробки, причому перша група входів-виходів кожного з обчислювальних блоків з'єднана відповідно з групою входів-виходів головного комутатора та комутатора коротких повідомлень, друга група входів-виходів кожного з обчислювальних блоків з'єднана відповідно з першою групою входіввиходів керуючого процесора, третя група входіввиходів кожного з обчислювальних блоків з'єднана відповідно з групою входів-виходів кожного з модулів спільної пам'яті, група входів-виходів кожного з модулів спільної пам'яті з'єднана відповідно з групами входів-виходів головного комутатора, кожна з відповідних груп керуючих виходів комутатора коротких повідомлень з'єднана відповідно з групою керуючих входів кожного з обчислювальних блоків, входи-виходи блоків обробки з'єднані відповідно з входами-виходами керуючого процесора, вхід-вихід керуючого процесора формує вхід-вихід обчислювальної системи, яка відрізняється тим, що система додатково містить співпроцесори і блоки спільної пам'яті, причому перша група входів-виходів кожного співпроцесора з'єднана відповідно з входом-виходом керуючого процесора, друга група входів-виходів кожного співпроцесора з'єднана відповідно з першою групою входів-виходів блоків спільної пам'яті, а друга група входів-виходів блоків спільної пам'яті з'єднана відповідно з групою входів-виходів головного комутатора. 2. Система за п. 1, яка відрізняється тим, що співпроцесор містить інтерфейс із керуючим процесором, інтерфейс з основною пам'яттю, кеш команд і даних L2, кеш команд L1, блок запиту, буфер команд, блок вибірки команд, блок конфігу 2 (19) 1 3 44229 4 виходів файла регістрів з'єднана з групою входів блока завантаження/збереження, перша група виходів арифметико-логічного пристрою з'єднана з другою групою входів файла регістрів, друга група виходів арифметико-логічного пристрою з'єднана з групою входів інтерфейсу з керуючим процесором, група виходів блока завантаження/збереження з'єднана з третьою групою входів файла регістрів, друга група входів-виходів блока завантажен ня/збереження з'єднана з першою групою входіввиходів кеша даних L1, друга група входів-виходів кеша даних L1 з'єднана з другою групою входіввиходів кеша команд і даних L2, група входіввиходів інтерфейсу з керуючим процесором формує перший вхід-вихід співпроцесора, друга група входів-виходів інтерфейсу з основною пам'яттю формує другий вхід-вихід співпроцесора. Багатофункціональна обчислювальна система відноситься до області цифрової обчислювальної техніки, і використовується в системах паралельної обробки структур даних різної складності й точності обчислень для різноманітного класу задач, що включають різну кількість універсальних мікропроцесорів, і спеціалізованих процесорів, та функціонально налаштованих співпроцесорів, які управляються керуючим процесором, і може бути використана при побудові ефективних конфігуріруємих систем різного функціонального призначення. Відома багатопроцесорна обчислювальна система [Пат. 5025407 США, МКІ 5 G 06 F 7/52, Опубл. Черв. 18,1991] яка містить головну ЕОМ обробки, графічний процесор, відео пам'ять, зсувний регістр, відео палітру, цифровий відео перетворювач, відеодісплей і співпроцесор, що виконує операції із плаваючою крапкою. Співпроцесор зв'язаний спеціальним інтерфейсом із центральним графічним процесором, і їхня робота взаємно синхронізована. Співпроцесор також зв'язаний шиною з відео пам'яттю та відео палітрою, і адаптований, таким чином, щоб виконувати арифметичні обчислення, включаючи матричні обчислення. Така спільна робота підвищує продуктивність розв'язання задач певних класів, де потрібна інтенсивна робота з даними типу плаваюча крапка (чисельний аналіз, графіка та ін.). Спільною ознакою із запропонованим пристроєм є спеціалізація виконання функцій на розв'язанні певного класу задач, у тому числі, матричних операцій. Причиною, що заважає досягненню технічного результату, є вузька спеціалізація співпроцесорааналогу на розв'язанні певного класу задач із певним типом даних і неможливість асинхронної роботи співпроцесорів. Інша обчислювальна система [Пат. 6,912,557 США, МКІ G06F 7/38, Опубл. Черв. 28,2005] включає керуючий RISC- процесор, один або більше математичних сигнальних співпроцесорів..(DSР), кожний з яких містить конвеєрну схему, табло, файл регістрів, масив помножувача з акумулятором, компаратор цілих чисел і чисел із плаваючою крапкою, цілочисельний суматор, і суматор із плаваючою крапкою. Співпроцесор управляється від керуючого RISC-процесора за допомогою спеціальних команд із метою виконання арифметичних і логічних операцій. Співпроцесор зв'язаний інтерфейсом із ведучим RISC- процесором, і їхня робота взаємно синхронізована по тактовій частоті. Після виконання кожної команди співпроцесор повертає керуючому процесору стани результатів виконання й самі результати в загальній оперативній пам'яті. Така спільна робота підвищує продуктивність розв'язання задач певних класів, зокрема, задач обробки зображень. Спільною ознакою із запропонованим пристроєм є наявність ведучого керуючого процесора та одного або декількох співпроцесорів, орієнтованих на розв'язання вузького класу задач . Причиною, що заважає досягненню технічного результату, є жорстка спеціалізація співпроцесора-аналогу на розв'язанні певного класу задач із певним типом даних і неможливість асинхронної роботи співпроцесорів і керуючого процесора. Найбільш близькою до корисної моделі по технічній суті та ефективності роботи є обчислювальна система, описана в патенті на корисну модель України UA №17725, МКІ G06F 15/16, Бюл. №10, 2006 р, що містить обчислювальні блоки, блоки обробки, модулі спільної пам'яті, керуючий процесор, головний комутатор, комутатор коротких повідомлень, причому група входів-виходів кожного з обчислювальних блоків з'єднана відповідно із групою входів-виходів головного комутатора, перші групи входів-виходів кожного з обчислювальних блоків з'єднані відповідно із групою входів-виходів керуючого процесора, другі групи входів-виходів кожного з обчислювальних блоків з'єднані відповідно із другими групами входів-виходів кожного з модулів спільної пам'яті, перші групи входіввиходів кожного з модулів спільної пам'яті з'єднані відповідно з першими групами входів-виходів головного комутатора, група входів-виходів кожного з обчислювальних блоків з'єднана відповідно з групою входів-виходів комутатора коротких повідомлень, кожна з груп керуючих виходів комутатора коротких повідомлень з'єднана відповідно з групою керуючих входів кожного з обчислювальних блоків, кожний блок обробки з'єднаний відповідно групою входів-виходів з групою входів-виходів керуючого процесора, інформаційні входи-виходи котрого утворюють інформаційний вхід-вихід обчислювальної системи. Загальними признаками прототипу із системою, що пропонується, є обчислювальні блоки, блоки обробки, модулі спільної пам'яті, керуючий процесор, головний комутатор, комутатор коротких повідомлень, причому група входів-виходів кожного з обчислювальних блоків з'єднана відповідно із групою входів-виходів головного комутатора, перші групи входів-виходів кожного з обчислювальних 5 блоків з'єднані відповідно із групою входів-виходів керуючого процесора, другі групи входів-виходів кожного з обчислювальних блоків з'єднані відповідно із другими групами входів-виходів кожного з модулів спільної пам'яті, перші групи входіввиходів кожного з модулів спільної пам'яті з'єднані відповідно з першими групами входів-виходів головного комутатора, група входів-виходів кожного з обчислювальних блоків з'єднана відповідно з групою входів-виходів комутатора коротких повідомлень, кожна з груп керуючих виходів комутатора коротких повідомлень з'єднана відповідно з групою керуючих входів кожного з обчислювальних блоків, кожний блок обробки з'єднаний відповідно групою входів-виходів з групою входів-виходів керуючого процесора, інформаційні входи-виходи котрого утворюють інформаційний вхід-вихід обчислювальної системи. Причиною, що заважає досягненню очікуваного ефекту, є те, що в прототипі відсутня можливість оперативного настроювання конфігурації співпроцесора для досягнення максимальної продуктивності при розв'язанні специфічних задач обробки даних з економним споживанням енергії. Технічна задача, на вирішення якої спрямована система, полягає в введенні додаткових можливостей ефективної внутрішній процесорної паралельної обробки даних шляхом включення до складу системи асинхронно функціонуючих конфігуріруємих співпроцесорів, що приводить до розширення функціональних можливостей обчислювальної системи. Рішення поставленої задачі досягається тим, що в багатофункціональну обчислювальну систему, що містить обчислювальні блоки, модулі оперативної пам'яті, блоки обробки, керуючий процесор, головний комутатор, комутатор коротких повідомлень, причому група входів-виходів кожного з обчислювальних блоків з'єднана відповідно із групою входів-виходів головного комутатора, перші групи входів-виходів кожного з обчислювальних блоків з'єднані відповідно із групою входів-виходів керуючого процесора, другі групи входів-виходів кожного з обчислювальних блоків з'єднані відповідно із другими групами входів-виходів кожного з модулів спільної пам'яті, перші групи входіввиходів кожного з модулів спільної пам'яті з'єднані відповідно з першими групами входів-виходів головного комутатора, група входів-виходів кожного з обчислювальних блоків з'єднана відповідно з групою входів-виходів комутатора коротких повідомлень, кожна з груп керуючих виходів комутатора коротких повідомлень з'єднана відповідно з групою керуючих входів кожного з обчислювальних блоків, кожний блок обробки з'єднаний відповідно групою входів-виходів з групою входів-виходів керуючого процесора, вхід-вихід керуючого процесора з входом-виходом обчислювальної системи, введені співпроцесори, причому кожний співпроцесор з'єднаний першою групою входів-виходів з входомвиходом керуючого процесора, другі групи входіввиходів співпроцесорів з'єднані з першими групами входів-виходів блоків пам'яті, а другі групи входіввиходів блоків пам'яті з'єднані з групою входіввиходів головного комутатора. 44229 6 Відмітними признаками системи, що пропонується, є співпроцесори і блоки спільної пам'яті, причому перша група входів-виходів кожного співпроцесора з'єднана відповідно з входом-виходом керуючого процесора, друга група входів-виходів кожного співпроцесора з'єднана відповідно з першою групою входів-виходів блоків спільної пам'яті, а друга група входів-виходів блоків спільної пам'яті з'єднана відповідно з групою входів-виходів головного комутатора. Співпроцесор містить інтерфейс із керуючим процесором, інтерфейс з основною пам'яттю, кеш команд і даних L2, кеш команд L1, блок запиту, буфер команд, блок вибірки команд, блок конфігурації, ПЗП команд, диспетчер, дешифратор команд, блок вибірки операндів, файл регістрів, арифметико-логічний пристрій, блок завантаження/збереження, кеш даних L1, причому група виходів інтерфейсу з керуючим процесором з'єднана з першою групою входів диспетчера, і з групою входів блока вибірки команд, перша група входіввиходів інтерфейсу з основною пам'яттю з'єднана з групою входів-виходів кеша команд і даних L2, група виходів кеша команд і даних L2 з'єднана з першою групою входів кеша команд L1, група виходів кеша команд L1 з'єднана з першою групою входів буфера команд, група виходів блоку запиту з'єднана з другою групою входів кеша команд L1, перша група виходів буфера команд з'єднана з групою входів блока запиту, друга група виходів буфера команд з'єднана з другою групою входів диспетчера, третя група виходів буфера команд з'єднана з першою групою входів блока вибірки операндів, перша група виходів блоку вибірки команд з'єднана з третьою групою входів кеша команд L1 і з групою входів ПЗП команд, друга група виходів блоку вибірки команд з'єднана з другою групою входів буфера команд, третя група виходів блоку вибірки команд з'єднана з першою групою входів арифметико-логічного пристрою, група входів-виходів блоку вибірки команд з'єднана з першою групою входів-виходів диспетчера, група виходів блоку конфігурації з'єднана з другою групою входів арифметико-логічного пристрою, група виходів ПЗП команд з'єднана з третьою групою входів буфера команд, перша група виходів диспетчера з'єднана з групою входів дешифратора команд, друга група виходів диспетчера з'єднана з другою групою входів блока вибірки операндів, друга група входів-виходів диспетчера з'єднана з першою групою входів-виходів блока завантаження \збереження, група виходів дешифратора команд з'єднана з групою входів блока конфігурації, з третьою групою входів арифметико-логічного пристрою і з третьою групою входів блока вибірки операндів, перша група виходів блоку вибірки операндів з'єднана з четвертою групою входів арифметико-логічного пристрою, друга група виходів блоку вибірки операндів з'єднана з першою групою входів файлу регістрів, перша група виходів файлу регістрів з'єднана з п'ятою групою входів арифметико-логічного пристрою, друга група виходів файлу регістрів з'єднана з групою входів блока завантаження \збереження, перша група виходів арифметико-логічного пристрою з'єднана з другою 7 групою входів файлу регістрів, друга група виходів арифметико-логічного пристрою з'єднана з групою входів інтерфейсу з керуючим процесором, група виходів блоку завантаження \збереження з'єднана з третьою групою входів файлу регістрів, друга група входів-виходів блоку завантаження \збереження з'єднана з першою групою входіввиходів кеша даних L1, друга група входів-виходів кеша даних L1 з'єднана з другою групою входіввиходів кеша команд і даних L2, група входіввиходів інтерфейсу з керуючим процесором формує перший вхід-вихід співпроцесора, друга група входів-виходів інтерфейсу з основною пам'яттю формує другий вхід-вихід співпроцесора. Введення в систему цих признаків дозволяє підвищити ефективну продуктивність обчислювальної системи при розв'язанні широкого класу задач, що досягається шляхом спільного паралельного функціонування обчислювальних блоків, керуючого процесора, блоків обробки і конфігуріруємих співпроцесорів та виконання останніми самостійно паралельних операцій над векторними структурами даних у них за рахунок векторної конфігурації групи обробляючих елементів із локальною пам'яттю під загальним управлінням керуючого процесора, за рахунок підключення їх під час діалогової взаємодії з користувачем у реальному часі при розв'язанні задач обробки векторів, матриць та розв'язанні інших задач інших користувачів. Розширення функціональних можливостей обчислювальної системи досягається шляхом підключення до спільної роботи з основними обчислювальними блоками реконфігуріруємих під специфічні задачі користувача співпроцесорів, що дозволяє здійснювати схемну паралельну обробку векторів або інших даних при ощадливому використанні обладнання, і, отже, економному в споживанні енергії, при пакетній або діалоговій взаємодії користувача в режимі реального часу при одночасному розв'язанні інших задач інших користувачів під управлінням керуючого процесора. На Фіг. 1 представлена функціональна схема запропонованої багатофункціональної обчислювальної системи. На Фіг. 2 представлена функціональна схема співпроцесора. Багатофункціональна обчислювальна система містить обчислювальні блоки 1.1 - 1.М, модулі спільної пам'яті 2.1 - 2.М, керуючий процесор 3, головний комутатор 4, комутатор коротких повідомлень 5, блоки обробки 6.1 - 6.К, співпроцесори 7.1 - 7.L, блоки спільної пам'яті 8.1 - 8.L. Перша група входів-виходів обчислювальних блоків 1.1 - 1 .М з'єднані відповідно з групою входів-виходів головного комутатора 4 та комутатора коротких повідомлень 5. Друга група входіввиходів обчислювальних блоків 1.1 - 1.М з'єднана відповідно з першою групою входів-виходів керуючого процесора 3. Третя група входів-виходів обчислювальних блоків 1.1 - 1.М з'єднана відповідно з групою входів-виходів кожного з модулів спільної пам'яті 2.1 - 2.М. Група входів-виходів кожного з модулів спільної пам'яті 2.1 - 2.М з'єднана відповідно з групами входів-виходів головного комутато 44229 8 ра 4. Кожна з відповідних груп керуючих виходів комутатора коротких повідомлень 5 з'єднана відповідно з групою керуючих входів кожного з обчислювальних блоків 1.1 - 1.М. Входи-виходи блоків обробки 6.1 - 6.К з'єднані відповідно з входамивиходами керуючого процесора 3. Перша група входів-виходів співпроцесорів 7.1 - 7.L з'єднана з входом-виходом керуючого процесора 3. Друга група входів-виходів співпроцесорів 7.1 - 7.L з'єднана з першою групою входів-виходів блоків пам'яті 8.1 - 8.L. Друга група входів-виходів блоків пам'яті 8.1 - 8.L з'єднана з групою входів-виходів головного комутатора 4. Вхід-вихід керуючого процесора 3 утворює вхід-вихід 9 обчислювальної системи. Співпроцесор 7.1 містить інтерфейс із керуючим процесором 10, інтерфейс із основною пам'яттю 11, кеш команд і даних L2 12, кеш команд L1 13, блок запиту 14, буфер команд 15, блок вибірки команд 16, блок конфігурації 17, ПЗП команд 18, диспетчер 19, дешифратор команд 20, блок вибірки операндів 21, файл регістрів 22, арифметикологічний пристрій 23, блок завантаження/збереження 24, кеш даних L1 25. Група виходів інтерфейсу з керуючим процесором 10 з'єднана з першою групою входів диспетчера 19 і із групою входів блока вибірки команд 16, перша група входів-виходів інтерфейсу з основною пам'яттю 11 з'єднана із групою входіввиходів кеша команд і даних L2 12, група виходів кеша команд і даних L2 12 з'єднана з першою групою входів кеша команд L1 13, група виходів кеша команд L1 13 з'єднана з першою групою входів буфера команд 15, група виходів блоку запиту 14 з'єднана з другою групою входів кеша команд L1 13, перша група виходів буфера команд 15 з'єднана з групою входів блока запиту 14, друга група виходів буфера команд 15 з'єднана з другою групою входів диспетчера 19, третя група виходів буфера команд 15 з'єднана з першою групою входів блока вибірки операндів 21 перша група виходів блоку вибірки команд 16 з'єднана з третьою групою входів кеша команд L1 13 із групою входів ПЗП команд 18, друга група виходів блоку вибірки команд 16 з'єднана з другою групою входів буфера команд 15, третя група виходів блоку вибірки команд 16 з'єднана з першою групою входів арифметико-логічного пристрою 23, група входіввиходів блоку вибірки команд 16 з'єднана з першою групою входів-виходів диспетчера 19, група виходів блоку конфігурації 17 з'єднана з другою групою входів арифметико-логічного пристрою 23, група виходів ПЗП команд 18 з'єднана з третьою групою входів буфера команд 15, перша група виходів диспетчера 19 з'єднана з групою входів дешифратора команд 20, друга група виходів диспетчера 19 з'єднана з другою групою входів блока вибірки операндів 21, друга група входів-виходів диспетчера 19 з'єднана з першою групою входіввиходів блока завантаження/збереження 24, група виходів дешифратора команд 20 з'єднана з групою входів блока конфігурації 17, з третьою групою входів арифметико-логічного пристрою 23 і з третьою групою входів блока вибірки операндів 21, перша група виходів блоку вибірки операндів 21 9 з'єднана з четвертою групою входів арифметикологічного пристрою 23, друга група виходів блоку вибірки операндів 21 з'єднана з першою групою входів файлу регістрів 22, перша група виходів файлу регістрів 22 з'єднана з п'ятою групою входів арифметико-логічного пристрою 23, друга група виходів файлу регістрів 22 з'єднана з групою входів блока завантаження\збереження 24, перша група виходів арифметико-логічного пристрою 23 з'єднана з другою групою входів файлу регістрів 22, друга група виходів арифметико-логічного пристрою 23 з'єднана з групою входів інтерфейсу з керуючим процесором 10, група виходів блоку завантаження \збереження 24 з'єднана з третьою групою входів файлу регістрів 22, друга група входів-виходів блоку завантаження \збереження 24 з'єднана з першою групою входів-виходів кеша даних L1 25, друга група входів-виходів кеша даних L1 25 з'єднана з другою групою входів-виходів кеша команд і даних L2 12, група входів-виходів інтерфейсу з керуючим процесором 10 формує перший вхід-вихід співпроцесора, друга група входів-виходів інтерфейсу з основною пам'яттю 11 формує другий вхід-вихід співпроцесора. Керуючий процесор 3 (Фіг. 1) описаний в [Патент RU 2042193 РФ, G06F15/16]. Блоки обробки 6.1-6.К (Фіг. 1) описані в [Патент UA 17725 України, MKI 7 G06F15/16]. Багатофункціональна обчислювальна система працює таким чином. У керуючому процесорі КП 3 ініціюється робота апаратних або програмних інтерпретаторів однієї із МВР із необхідним набором драйверів пристроїв і драйверів інтерфейсів шин зв'язку з обчислювальними блоками 1.1 - 1.М, блоками обробки 6.1 - 6.К і співпроцесорами 7.1 - 7.L. Ці дії, а також діагностика пристроїв усієї системи, можуть бути виконані через консоль системного оператора, підключеного до КП 3 через вхід-вихід 9, у ручному або автоматичному режимі. КП 3, вибираючи зі своєї пам'яті команди-оператори, викликає роботу мікропрограм, окремі мікрокоди яких у вигляді керуючих директив передаються через керуючі шини на входи обчислювальних блоків 1.1 - 1.М, блоків обробки 6.1 - 6.К і співпроцесорів 7.1 - 7.L. Блоки співпроцесора 7.1 - 7.L (Фіг. 2) функціонують у такий спосіб. На етапі конфігурації ядра співпроцесора на ресурсі даного кристалу FPGA визначається розмір матриці обробки та її секцій у блоці арифметико - логічного пристрою 32, що орієнтуються на виконання певного типу операцій над даними - бітових, символьних, цілочисельних, з фіксованою крапкою, із плаваючою крапкою, подвійної точності, або разом усіх типів та ін. Кордони секцій і режим їхньої роботи визначається типом команд, що виконуються, і типом даних, що обробляються, які зберігаються разом із тегами, що ідентифікують типи даних. На етапі конфігурації визначається, у залежності від розміру і структури матричного арифметико-логічного пристрою 23, об'єм буфера підкачки даних кеша даних L1 25 для виконання узгодженого паралельного завантаження, або збереження даних. Під час ініціалізації співпроцесора, на Етапі 0 (F/D1) конвеєра, блок вибірки команд 16 зверта 44229 10 ється до кеша команд L1 13 із запитом за адресою, завантаженою з керуючого процесора , і очікує сигналу готовності від кеша команд L1 13. Кеш команд L1 13 переглядає доступні адреси у своїй асоціативній пам'яті і, якщо необхідної адреси там немає, звертається через інтерфейс з основною пам'яттю 11 до блоку спільної пам'яті 8.1. Після підкачки сегменту команд, кеш команд L1 13 видає в буфер команд 15 сигнал готовності REDY=’1’, і запам'ятовує рядок в 16 байтів у буфері команд 15, виставляє вісім байтів у блок вибірки команд 16 для паралельного попереднього декодування. Протягом Етапу 0 вибирається рядок із кеша команд L1 13, визначається тип команд і їхній формат (0-однобайтова, 1-двобайтова, 2-трибайтова і 3-чотирибайтова команда), і визначаються групи агрегатів виявлених команд, які виконуються за один прохід конвеєра. Послідовність інструкцій, вибраних із кеша команд L1 13 для одного з потоків, запам'ятовується в буфері команд 15 для даного потоку з відображенням їхнього розміщення і статусу у вигляді черги FIFO в диспетчері 19 конвеєра команд. Підтримання механізму передвибірки, у тому числі наступних семи байт-кодів слідом за викликаним адресним байт-кодом, здійснюється через блок запиту 14 на передвибірку. Запити на вибірку, якщо їх декілька, утворюють замкнуту у вигляді кола чергу, що просувається в міру задовільнення запиту кешем команд L1 13 шляхом надсилання сигналу скидання відповідного тригера запиту в буфері команд 15 із передвибіркою. Такий механізм передвибірки дозволяє здійснити паралельне групове декодування команд і їхнє наступне виконання за один прохід конвеєра при багатопотоковому виконанні на одному фізичному конвеєрі співпроцесора. Крім того, блок вибірки команд 16 змінної довжини здійснює розгалуження виконання інструкцій переходу, якщо необхідно. При цьому для умовних переходів використовується механізм передбачення розгалуження у вигляді «успішного індексу», що відбивається в таблиці історії розгалуження, що дозволяє виконувати «недозволені галуження» як безумовні, що підвищує швидкодію конфігуріруємого співпроцесора внаслідок запобігання незадіяних кроків конвеєра. Також можливе застосування механізму передбачення галуження, засноване на роботі компілятора, і у вигляді «успішного індексу», що відбивається також. Зважаючи на те, що деяка частина команд конфігуріруємого співпроцесора виконується за допомогою підпрограм, розміщених у ПЗП команд 18, при відкритті однієї з таких команд блок вибірки 16 зберігає в стеку адресу кеша команд L1 13 наступної виконуваної команди, і завантажує в лічильник команд адресу початку підпрограми, переключається від кеша команд L1 13 до ПЗП команд 18, і вибирає послідовність команд, яка складається з команд конфігуріруємого співпроцесора, які інтерпретують необхідні до виконання складні команди. При цьому зберігається механізм виконання групових команд і механізм галуження. У залежності від типу виконуваної команди змінюється склад і послідовність етапів обробки, крім етапів, пов'язаних із вибіркою команд та їх 11 попереднім паралельним декодуванням (етап F/D1), дешифрацією їхніх кодів операцій, указаниям адреси й читанням із регістру файлу регістрів 22 (етап PC/D2), вибіркою операндів із файлу регістрів 22 в буферний регістр арифметико-логічного пристрою 23 (етап exe/L) і стадії зворотного запису результату виконання в файл регістрів або в кеш даних L1 25 (етап Writeback). Наприклад, для команд типу Load/Store в конвеєр додатково включений крок генерації адреси для внутрішньої пам'яті або багато тактовий етап доступу до основної пам'яті. Незалежно від типу даних, що обробляються, формату команд-байткодів і набору їхньої сукупності, усі вони будуть виконуватися за однакову кількість етапів, що зменшує обсяг задіяного обладнання. Результатом є зменшення в споживанні потужності внаслідок зменшення кількості записів у ядрі співпроцесора, побудованого на основі конвеєрного одночасного виконання до восьми незалежних або підпорядкованих паралельних нитей (потоків), одна з яких є ведучою ниттю. У співпроцесорі 7.1 застосовується конвеєрна й неупорядкована обробка команд різних потоків (зі збереженням послідовності обробки в кожному потоці) в одному фізичному конвеєрі для поліпшення продуктивності своєї суперскалярної архітектури. У кожному циклі процесора активна інструкція просувається на наступний етап. За Етапом 7 наступна інструкція в послідовності починає з Етапу 0. Програмна нить 0 (Т0) входить у конвеєрний Етап 0. У міру того як час просувається по тактам СІ, програмна нить Т0 переміщується з Етапу 0 до Етапу 7 конвеєра. Результат дії цих апаратних засобів еквівалентний паралельній процесорній обробці восьми нитей. Будь-який із потоків процесора може функціонувати як керуюча нить. Координує роботу нитей диспетчер 19 управління конвеєром команд, що побудований на основі автомату переходів і підтримує чергу готових до виконання команд, або команд, що перебувають у стані очікування ресурсів, у тому числі даних. Вісім потоків обробляються послідовно за круговим принципом по одній команді за оборот від кожного потоку. Диспетчер управління конвеєром команд здійснює такі керуючі функції: 1) управління пуском /зупинкою для кожної ниті співпроцесора; 2) доступ по читанну /запису до стану контексту кожної ниті співпроцесора; 3) виявлення незвичайних умов як, наприклад, блокування потоків або короткі цикли; 4) управління критичними ресурсами, засноване на семафорній сигналізації; 5) таймер для синхронізації дій співпроцесора. Стан виконання (контекст) кожної процесорної ниті ядра конфігуріруємого співпроцесора міститься у фреймі потоку. Контекст потоку включає, окрім копії регістрів верху стеку операндів і пула змінних методу потоку, (1) поточну копію 16-бітового регістру-лічильника команд, (2) чотирибітовий регістр коду завершення виконання команди, (3) регістр лічильник ниті, (4) поточні покажчики стеку операндів і пула локальних змінних методу й (5) фішки ознак, як це потрібно на кожний конвеєрний етап. На кожному кроці конвеєра для обробки підключається відповідний контекст потоку й облад 44229 12 нання співпроцесора, яке виконує команду. Іншими словами, усі контексти активних потоків виконуються одночасно, але тільки один контекст активний у кожний даний цикл співпроцесора. У міру того як інструкція просувається через апаратний конвеєр, стан кожної співпроцесорної ниті завантажується в структуру пакету, що слідує через конвеєр співпроцесора. Структура пакету ниті різна для кожного конвеєрного етапу, відображаючи різні вимоги етапів. Розмір пакету ниті змінюється від сорока п'яти біт до ста й трьох біт. Диспетчер 19 конвеєра функціонує спільно із блоком вибірки команд 16 змінної довжини при відпрацюванні запиту до кеша команд L1 13 на вибірку наступної порції команд даного потоку. При цьому робиться перевірка (1) виконується один потік чи декілька; якщо не один потік - робиться перевірка на наявність передбаченого переходу; якщо його немає - запит іде на той самий потік, тоді - завдання диспетчеру: «змінити контекст» і оновити ресурси передбаченого переходу на цей новий потік, інакше виконати запит для того ж самого поточного потоку; (2) якщо зазначені вище перевірки - істинні, то виконати запит для того ж самого поточного потоку і оновити буфер команд 15. При використанні архітектури з конвеєрною організацією, етапи вибірки, декодування, обробки, робота з пам'яттю й зберігання машинних інструкцій поділяються (використовуються загальні логічні схеми) між паралельними програмними нитями. Усі блоки ядра співпроцесора закодовані мовою опису обладнання VHDL, внаслідок чого його блоки можуть бути конфігуровані на будь-яку систему команд і формати даних шляхом перенавантаження версії співпроцесора в кристал із програмно настоюваною схемною структурою FPGA на етапі конфігурації співпроцесора. Керуючий процесор 3 (Фіг. 1) управляє роботою масиву мікропроцесорних модулів (МПМ), масиву процесорних елементів (ПЕ-в), які входять у блок обробки, і масиву співпроцесорів, у режимі ОКМД (Одна Команда Множина Даних), або в режимі МКМД (Множина Команд Множина Даних) шляхом активізації сигналу MIMD-ACTIVE на під шині управління. Керуючий процесор 3 здійснює вибір обчислювальних блоків 1.1 - 1М, блоків обробки 6.1 - 6.К і співпроцесорів 7.1 - 7.L по одній із шин першої групи входів-виходів, і виконує передачу даних і керуючої інформації в форматі і в режимі, що визначаються типом вибраного блоку. Початкові віртуальні адреси команд (програма) і даних для обробки, визначені співпроцесорам 7.1 7.L керуючим процесором 3, вибираються із блоків пам'яті 8.1 - 8.L для обробки. Результати обробки можуть передаватися іншим блокам ОС або на зовнішній носій, і статус виконання - у керуючий процесор 3. Для цього кожний співпроцесор виставляє свої сигнали запиту на обслуговування REQUEST, які збираються схемою АБО і реалізуються в керуючому процесорі 3 на пріоритетній основі. Дані й команди для обробки пересилаються в адресовану локальну пам'ять МПМ, в адресовані 13 ПЕ-ти, у спільну пам'ять співпроцесорів. У режимі ОКМД усі задіяні МПМ, або ПЕ-ти в блоках обробки, або співпроцесори виконують однакову послідовність, але різних команд. У режимі МКМД кожний із задіяних пристроїв виконує різну послідовність команд. Результати виконання операцій і їхній статус можуть бути передані в керуючий процесор 3, або на термінал або на печатку, або записані на зовнішній носій. Для цього кожне зі згаданих вище пристроїв виставляє свій сигнал запиту на обслуговування REQUEST, які збираються схемою АБО й реалізуються на пріоритетній основі по системній шині зв'язку в керуючому процесорі 3. Ініційовані для паралельної роботи МПМ в обчислювальних блоках починають вибирати з своєї пам'яті і виконувати ті команди-оператори, які попередньо завантажені, паралельно і незалежно один від одного аж до того моменту, поки в програмній гілці не зустрінуться оператори синхронізації і оператори, які вимагають даних з іншої гилки програми. Якщо ці дані розміщені в пам'яті в межах обчислювального блоку, то вони будуть викликані через загальну шину цього блоку або з жорсткого диску. Якщо ж дані розміщені в пам'яті іншого обчислювального блоку, то МПМ виставляє команду або код переривання на свій буферний регістр комутатора коротких повідомлень 5 з вказівкою адреси МПМ. Якщо шлях вільний, переривання передається у відповідний МПМ, який, опрацьовуючи команду, виконує дії зі збереженням результату в пам'яті. Після цього МПМ виставляє повідомлення-переривання через комутатор коротких повідомлень 5 про готовність даних і їхнє місцезнаходження. МПМ, який запросив дані, звертається за ним через головний комутатор каналів 4, прочитує їх з магістральною швидкістю. Так може працювати будь-який з задіяних МПМ. Закінчивши виконувати свої програмні гілки, МПМ повідомляє про це керуючому процесору за допомогою сигналу запиту REQUEST, повертаючи через магістраль зв'язку результати умов завершення виконання своїх програм, і розміщує коди умов на буферні регістри зв'язку. Після цього ті МПМ, які закінчили роботу, переходять в стан «Очікування», очікуючи наступних керуючих вказівок із боку будь-якого з МПМ або керуючого процесора 3. Керуючий процесор 3, послідовно проглядаючи коди умов завершення по кожному перериванну з МПМ, приймає відповідні рішення про подальші дії згідно основного алгоритму програми, що виконується. Ініційовані для роботи блоки обробки і процесорні елементи (ПЕ) у них починають вибирати зі своєї пам'яті, і виконувати попередньо завантажені команди-оператори, паралельно і незалежно один від одного при встановленому режимі МКМД, або паралельно і спільно - у режимі ОКМД. У режимі МКМД ПЕ-и працюють аж до того моменту, поки програній гілці не зустрінуться оператори синхронізації і оператори, які вимагають даних з іншої гілки програм. Якщо ці дані розміщені в пам'яті в межах блоку обробки, то вони будуть викликані ПЕ-ми незалежно один від одного через локальні шини із других ПЕ-в або з жорсткого диску. Після завершення виконання своєї програмної гілки кож 44229 14 ний ПЕ незалежно і асинхронно виставляє коди умов на свої буферні регістри, і сигнал повідомлення-переривання REQUEST керуючому процесору 3. Керуючий процесор З, послідовно проглядаючи коди умов завершення по кожному перериванню з ПЕ-в блоку обробки, приймає відповідні рішення про подальші дії згідно основного алгоритму програми, що виконується. У режимі ОКМД ПЕ-и працюють паралельно до завершення завантаженої послідовності команд і припиняються, виставивши коди умов на свої буферні регістри і сигнал REQUEST в вигляді переривання на обслуговування керуючому процесору 3. Керуючий процесор 3, послідовно проглядаючи коди умов завершення по кожному перериванню з ПЕ-в блоку обробки, приймає відповідні рішення про подальші дії згідно основного алгоритму програми, що виконується. Ініційовані для роботи співпроцесори 7.1 - 7.L починають вибирати з блоків спільної пам'яті 8.1 8.L і виконувати початкові завантажені командиоператори для завантаження з флеш-пам'яті для співпроцесора необхідної конфігурації його ядра і встановлення режиму обробки - МКМД або ОКМД в залежності від типу класів поставлених задач для вирішення. Співпроцесори працюють до того моменту, доки не зустрінуться синхронізуючі оператори або оператори підкачки даних з інших дільниць програми. Якщо ж дані розміщені в загальній пам'яті 2.1 - 2.М, то вони будуть оброблені одним співпроцесором незалежно від інших конфігуріруємих співпроцесорів через загальний магістральний головний комутатор 4. Якщо ж дані розміщені на зовнішньому носії, то вони будуть завантажені в ОП на вимогу запиту сигналу-заявки REQUEST керуючому процесору 3 шляхом використання одного із МПМ для виконання операції введення виведення. Після завершення своєї програми, співпроцесори незалежно й асинхронно один від одного виставляють коди умов на свої буферні регістри й сигнали запиту-переривання REQUEST в керуючий процесор 3. Керуючий процесор 3, послідовно переглядаючи коди умов, які передані зі співпроцесорів 7.1 - 7.L по кожному перериванню, приймає відповідне рішення по подальшим діям згідно до основного задіяного алгоритму. Користувачі вводять свої задачі через термінали й контролери введення-виведення, що розміщені в обчислювальних блоках і блоках обробки, у буфери введення-виведення, де вони утворюють чергу вхідних задач. Далі заявки з вихідної черги задач вимагають свій перший ресурс - компілятор або інтерпретатор, що надається їм розподіленою багатозадачною і багато потоковою операційною системою. Компілятор по кожній задачі складає супровід-команди управління потоком даних і ресурси, які разом з іншими командамиоператорами, отриманими в результаті трансляції пропозицій мови високого рівня (наприклад, С, Java або С+Граф), складають для виконання програм внутрішньою мовою різного рівня. Програми користувачів для розподіленої паралельної обробки будуються по типу клієнт-сервер. Далі клієнтські або термінальні паралельні блоки програм розміщаються в обчислювальних блоках, блоках оброб 15 44229 ки, і/або в співпроцесорах, а серверна, провідна частина - у керуючому процесорі 3, де вони утворять чергу готових до виконання програм. Операційна система керуючого процесора 3 планує виконання програм, розміщених у черзі готовності, підключає ресурси у вигляді обчислювальних блоків, блоків обробки й співпроцесорів для виконання термінальних блоків програм. Застосування співпроцесорів у складі багатопроцесорної обчислювальної системи дозволяє виконувати оперативне (протягом сотень мікросекунд) початкове настроювання співпроцесорів у системі шляхом завантаження керуючим процесором конфигурации кристала з адресуемої флешпам'яті на етапі конфігурації співпроцесора й управляти ними керуючим процесором для розв'язання специфічних задач обробки даних із максимальною продуктивністю, недосяжною для стандартних МПМ, за рахунок паралельної багато потокової обробки даних на множині операційних приладів і, у тому числі, АЛП векторно-матричного типу. При цьому органічно використовуються такі властивості МПМ, як управління ресурсами й введенням-виведенням під управлінням ОС, які не виконуються в співпроцесорах, що розвантажує Комп’ютерна верстка Д. Шеверун 16 співпроцесори від виконання таких операцій, і підвищує їхня продуктивність. Реалізація таких можливостей запропонованої в даній корисній моделі способами дозволяє цілеспрямовано розширити коло ефективно розв'язуваних задач, і підвищити в такий спосіб продуктивність різнорідних і перебудованих багатопроцесорних систем обробки даних. Проведене імітаційне моделювання роботи блоків співпроцесора підтвердили описані характеристики роботи співпроцесора й усієї системи в цілому при одночасному рішенні різних задач загального й спеціального функціонального характеру. Компоненти багатофункціональної обчислювальної системи обчислювальні блоки можуть бути зібрані на стандартних як простих так і багато ядерних мікропроцесорах і чіпсетах, а комутатори, боки обробки й співпроцесори - на стандартних запрограмованих логічних матрицях (наприклад, на програмованих матрицях фірми XILINX). Завдяки цим особливостям запропонована багатофункціональна обчислювальна система може бути легко впроваджена в промисловість. Підписне Тираж 28 прим. Міністерство освіти і науки України Державний департамент інтелектуальної власності, вул. Урицького, 45, м. Київ, МСП, 03680, Україна ДП “Український інститут промислової власності”, вул. Глазунова, 1, м. Київ – 42, 01601
ДивитисяДодаткова інформація
Назва патенту англійськоюMulti-functional computing system
Автори англійськоюBulavenko Oleh Mykolaiovych, Liubarskyi Valerii Fedorovych, Riabchun Serhii Hryhorovych, Yakuba Anatolii Oleksandrovych
Назва патенту російськоюМногофункциональная вычислительная система
Автори російськоюБулавенко Олег Николаевич, Любарский Валерий Федорович, Рябчун Сергей Григорьевич, Якуба Анатолий Александрович
МПК / Мітки
МПК: G06F 15/16
Мітки: система, обчислювальна, багатофункціональна
Код посилання
<a href="https://ua.patents.su/8-44229-bagatofunkcionalna-obchislyuvalna-sistema.html" target="_blank" rel="follow" title="База патентів України">Багатофункціональна обчислювальна система</a>
Попередній патент: Теплогенератор для спалювання дров, торфу, дерев’яних відходів
Наступний патент: Спосіб виготовлення з’єднувачів рейкових стикових
Випадковий патент: Спосіб лікування дивертикула меккеля у дітей