УДК 681.325
ВЗАИМНАЯ АДАПТАЦИЯ АППАРАТНО - ПРОГРАММНЫХ СРЕДСТВ ДЛЯ ПРОЦЕССОРА С MISC-АРХИТЕКТУРОЙ
ЦУКАНОВ В.Ю.
Приводятся программные модели MISC - архитектуры и сравнительная оценка по быстродействию каждой из моделей. Рассмотрен также вопрос выбора структуры для обработки микропрограммы в ходе её выполнения.
1. Введение
Особенность микропрограммируемого микропроцессора (ММП) в сравнении с однокристальными микропроцессорами — возможность варьировать составом аппаратной части микропроцессора(МП). Отсутствие жесткой привязки к конкретной архитектуре позволяет увеличивать быстродействие (или достигать заданного быстродействия) МП за счёт адаптации структуры, микропрограмм и синхронизации к прикладному алгоритму. Такая адаптация носит комплексный характер и её результатом будет укрупнение модулей элементной базы. Оптимальное решение будет получено при достижении максимального быстродействия МП при ограниченных (минимальных) аппаратурных затратах. Быстродействие оценивается временем выполнения микропрограмм. В [13] предложено несколько методов для получения максимального быстродействия ММП.
Все методы, используемые для получения оптимального проектного решения можно условно разделить на три группы:
1. Выбор структуры микропроцессора и способа обработки микрокоманд. Производится подбор способа обработки микрокоманд под конкретную структуру из всех возможных по оценке соответствия.
2. Преобразование схем алгоритмов микропрограммного управления. Производится оптимизация алгоритмов для улучшения построения микропрограмм.
3. Синтез оптимальной системы синхронизации. Производится подбор подходящей длины такта (после написания микропрограммы на этапе анализа её).
На основе идей Сизова К.А. [6] была синтезирована MISC — архитектура [7]. В предложенной статье рассматривается MISC — архитектура с тремя каналами. Первый канал используется для выполнения однотактных команд (то есть тогда, когда необходимо использование МП с архитектурой RISC). Второй (CISC - область ОП - КАМК 2 - Cache - Flash -Cache - ОА) и третий канал (CISC - область ОП -КЗЦА - ОА) используются для выполнения сложных команд, то есть тогда когда МП с архитектурой CISC выглядит предпочтительнее.
В данной статье предлагается концепция решения задачи выбора необходимых структур при просмотре глобальной микропрограммы.
Глобальная микропрограмма будет рассматриваться как набор “известных” (стандартные функции) и “неизвестных” участков. Для “неизвестных” участков существует структура, описанная в [4], которая наилучшим образом (быстрее) обрабатывает данный участок микропрограммы. Для правильной интерпретации микропрограммы будет использоваться канал 2. Настройка канала КАМК2 - ОА и будет определять выбор нужной структуры ММП.
І.Разбивка микропрограммы на фрагменты для анализа и выбор оптимальной структуры
Теперь выясним каким образом лучше разбивать микропрограмму для проведения идентификации.
Любая микропрограмма имеет довольно небольшое количество микрокоманд (до 4096 микрокоманд), а потому разбивку на фрагменты можно производить на одинаковые куски, например, на 8 или 16 микрокоманд в каждом. Этот метод не совсем подходит для правильного анализа микропрограммы, ибо условные переходы могут ссылаться на микрокоманды находящиеся вне фрагмента и правильная интерпретация в таком случае будет весьма условна.
Допустим, что разрезание проведено произвольно. При этом получили несколько блоков, каждый из которых имеет входящие и выходящие связи (условные или безусловные переходы). Для оптимального выбора структур ММП необходимо провести сегментацию микропрограммы таким образом, чтобы количество связей, входящих и выходящих, было не более двух между двумя рядом стоящими блоками. В противном случае искажение при выборе структур будет замедлять выполнение микрокоманд. Учитывая сказанное, делаем вывод, что для исправления такого рода ошибок лучше ввести разбивку на линейные участки и участки, условные переходы в которых будут иметь адресат внутри этого фрагмента (рис. 1).
Начало
Фрагмент 1
Фрагмент 2
Фрагмент 3
Рис. 1. Пример разбивки микропрограммы на линейные фрагменты и блоки с передачей управления
Таким образом, после подобного деления всей микропрограммы получатся фрагменты, каждый из которых можно подвергать анализу на соответствие какой-либо структуре.
РИ, 2000, № 1
59
2.Анализ фрагмента микропрограммы в целях выбора оптимальной структуры
Существует возможность определения наиболее подходящей структуры (т.е. той, на которой микропрограмма выполняется быстрее всего) по внешнему виду микропрограммы. Напомним, что в данном конкретном случае рассматривается подбор структуры только для “неизвестных” участков, стандартные функции обрабатываются каналом 3 MISC — процессора.
При рассмотрении микропрограмм и для интерпретации структур воспользуемся следующими правилами:
А) В рассматриваемой микропрограмме в адресной части тестируемой микрокоманды условному переходу предшествует только одна микрокоманда, ссылающаяся на данную микрокоманду, и другие на неё не указывают.
Если это условие выполнено, то такая микропрограмма или её фрагмент может быть обработан структурой Si или S2.
Б) Если в микропрограмме выполняется условие А и к тому же в одной и той же микрокоманде условный переход не зависит от тестируемого признака (между тестируемым признаком и условным переходом вставлен ноп — нет операции), то такая микропрограмма может быть обработана структурами S3, S4, S5, S8.
Для выбора структуры ММП, близкой к оптимальной, и в целях повышения эффективности работы МП необходимо проанализировать каждую микрокоманду в микропрограмме. Если микропрограмма соответствует особенностям выбранной структуры, она выбирается как базовая для обработки микропрограммы. Конвейерные структуры, такие как S6, S7, требуют включения в микропрограмму “пустых” микрокоманд, позволяющих получить задержку на один, два и три такта.
Такая адаптация обеспечивает минимальное время работы микропрограммы.
Микропрограмма для структуры S6, S7 довольно сложная и должна подчиняться нескольким правилам:
1. Если в микропрограмме встречаются в адресных частях микрокоманд дублируемые условные переходы, причём у микрокоманды повторяющегося условного перехода в операционной части стоит НОП, а переходы абсолютно одинаковы (т.е. не только по условию, но и по приёмнику) и выполняется:
а) переход от дублируемой микрокоманды по адресной части по выходу на дублирующую должен осуществляться через один вперёд от данного;
б) переход от дублирующей микрокоманды по выходу должен осуществляться тоже через один вперёд от данного;
в) на линейных участках, т. е. там где не встречаются условные переходы (УП), адресация последовательная,
то такая микропрограмма может быть обработана с помощью структуры S6.
Для выбора S7 необходимо, чтобы выполнялись те же условия, что и для S6, и к тому же формирование признаков и условные переходы, использующие их, были разнесены по разным микрокомандам и между ними был вставлен НОП.
Для выбора S9 необходимо выполнение таких условий, как и для структур S3, S4, S5, S8, за исключением “разноса на два такта”, то есть между тестированием признака и условным переходом, использующим этот признак, должно быть два такта (разделение микрокоманды с тестированием признака и микрокоманды с условным переходом микрокомандой с НОП). Если это условие не выполняется, то S9 работает медленнее, чем S4 или S5 .
Если выполнено условие А и в каждой микропрограмме, в адресной части которой стоит условный переход, в операционной части должен стоять НОП; адреса перехода для таких микрокоманд должны быть заданы по правилу микрокоманды, следующей за данной (т.е. переход не на следующую микрокоманду, а через одну), то такая микропрограмма может быть обработана структурой S10.
Структура S11 может обрабатывать микропрограммы, удовлетворяющие условиям, приведенным для S10, и ранее рассмотренным условиям А и Б.
Таким образом, если в рассматриваемой микропрограмме найдётся блок, отвечающий условиям той или иной структуры, то можно с уверенностью сказать, что он наилучшим образом будет обработан конкретной, подходящей для данного случая структурой ММП.
Однако один и тот же фрагмент микропрограммы может быть обработан несколькими структурами, и тогда важно проанализировать параметры аппаратных средств [5].
3. Оценка быстродействия МП в зависимости от параметров аппаратных средств
Значения Тпзум , Тоск , Ткам определяются конкретными схемами ОСК, КАМ и ПЗУМ.
При постоянной длительности такта наибольшим быстродействием обладают структуры:
54, если Тоск ~ Ткам + Тпзум ;
55, если Ткам > Тпзум + ТОСК ;
Sg, если Тпзум ~ Тоск + Ткам ; (1)
S7, если Тоск Ткам Тпзум .
При переменной длительности такта существуют
такие соотношения: ts2 - ts4; tsi - ts5, ts6 - ts7 (ts2 — время выполнения микрокоманды на структуре S2. и т.д.); tS4 < tS5, tS2 < tS1. Таким образом, делаем вывод о том, что структура S2. лучше чем все остальные, но при использовании переменной длительности такта. Остальные структуры S3, S8 -S11 уступают по быстродействию перечисленным [5].
Если же выполняется:
60
РИ, 2000, № 1
Т ОСК ^ ТКАМ + ТПЗУМ ;
ТкАМ ^ ТОСК + ТПЗУМ ; (2)
ТПЗУМ ^ Т КАМ + ТОСК ,
то при переменной длительности такта наиболее быстродействующей структурой является S2 или S6.
Характеристики аппаратных средств играют важную роль в определении структуры МП для повышения быстродействия .
Итак, при наличии конкретных значений Тпзум , ТОСК , ТКАМ можно определить иерархию структур в отношении быстродействия.
Совершенно очевидно, что некоторые структуры из “рабочих” отбрасываются сразу же, ибо уступают по быстродействию (напомню, что аппаратные затраты здесь являются второстепенным фактором, поэтому не сильно учитываются). Выбор будет производится из (1) при постоянной длительности такта и из (2) — при переменной.
Таким образом, у нас есть возможность подобрать конкретную схему для всей последовательности микрокоманд (микропрограммы) или для фрагмента микропрограммы на основе выбора структуры по виду микропрограммы и по характеристикам КАМ, ОСК и ПЗУМ.
5. Программная часть
Укрупнённые этапы, которые необходимо выполнить для поиска оптимальной структуры приведены на рис.2.
МИКРОПРОГРАММА
U
РАЗБИВКА МИКРОПРОГРАММЫ НА БЛОКИ
U
АНАЛИЗ КАЖДОГО БЛОКА (АНАЛИЗ МИКРОКОМАНД ПО ПРАВИЛАМ ИНТЕРПРЕТАЦИИ КАЖДОЙ СТРУКТУРЫ). ВЫБОР СТРУКТУРЫ
U
ВЫБОР СПОСОБА ОБРАБОТКИ (ПЕРЕМЕННАЯ ДЛИТЕЛЬНОСТЬ ИЛИ ПОСТОЯННАЯ)
U
АНАЛИЗ ЗНАЧЕНИЙ АППАРАТНЫХ СРЕДСТВ ДЛЯ ПОВЫШЕНИЯ БЫСТРОДЕЙСТВИЯ
U
ПОЛУЧЕНИЕ ОПТИМАЛЬНОГО НАБОРА СТРУКТУР.
Рис. 2. Этапы анализа и выбора оптимального набора структур ММП
Ниже приведена программа, написанная на языке Си [8], которая может быть использована для анализа любой заданной микропрограммы. Она выполняет все этапы рис.2, выходными данными являются разбивка микропрограммы на фрагменты и выдача
реестра структур, использующихся для обработки конкретного участка глобальной микропрограммы.
Приведена только часть процедуры, выполняющей разбивку на блоки с правилами, указанными в разделе 3 этой статьи.
//===============================
// Module AsmParse.cpp
// ===============================
#include “globals.h”
#include <windows.h>
#include <stdio.h>
#include <string.h>
#define MAX_LISTING_LENGTH 4098 #define MEM_BLOCK_SIZE 4098 char szAsmFileName[MAX_PATH];
HANDLE hAsmFile = INVALID_HANDLE_VALUE; DWORD dwFileSize; char *cptrAllListing = NULL; char *cptrCommands = NULL;
PBLOCK_LIST ptrBlockList = NULL;
BOOL FindBlocks(char *, DWORD);
//===============================
// Function main
//===============================
int main(int argc, char **argv) { char *szPtr;
DWORD dwFileSizeHigh, dwBytesRead;
// =============================
// Getting File Name;
// =============================
if(argc != 2) {
printf(“ Error: too many arguments...\n”); printf(“Usage: AsmParse.exe FileName”); return 1;}
else if(strlen(*++argv) > MAX_PATH) { printf(“Error: filename is too long...\n”); return 1;} else {
strcpy(szAsmFileName, *argv);
szPtr= szAsmFileName+strien(szAmFileName) - 4;
strlwr(szPtr);
if(strcmp(szPtr, “.asm”) != 0) { printf(“Error: you have to use assembler listing.. .\n”); printf(“File name format: FileName.asm\n”); return 1;}
}
__try { // Protected block of termination handling
// =============================
// Opening listing file:
РИ, 2000, № 1
61
//=============================
hAsmFile = CreateFile(szAsmFileName, GENERIC_READ, FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
NULL,
NULL);
if(hAsmFile == INVALID_HANDLE_VALUE) { printf(“Error opening file...\n”);
__leave;}
//=============================
// Chicking file size:
//=============================
dwFileSize = GetFile Size (hAsmFile, &dwFileSizeHigh);
if((dwFileSizeHigh != 0) ||
(dwFileSize > MAX_LISTING_LENGTH)) { printf(“Error: file is too large...\n”);
__leave;}
// ============================
// Preparing some memory to locate file contents:
// ============================
cptrAllListing = (char *)VirtualAlloc(NULL, MEM_BLOCK_SIZE,
MEM_RES ERVE | MEM_COMMIT, PAGE_READWRITE); if(cptrAllListing == NULL) { printf(“ Error allocation memory.. .\n”);
__leave;}
// ============================
// Reading the file:
// ============================
if(! Read File (hAsmFile,
(LPVOID)cptrAllListing,
dwFileSize,
&dwBytesRead,
NULL)) {
printf(“Error reading file...\n”);
__leave; }
if(dwBytesRead != dwFileSize) { printf(“Error reading file...\n”);
__leave;}
// ============================
// Blocks of commands working:
// ============================
if(!FindBlocks(cptrAllListing, dwFileSize)) { printf( “ Error blocks parsing.. .\n”);
__leave;}
if(!FindBlocksType()) {
printf( “ Error typing blocks.. .\n”);
__leave;} if(!OutResults()) {
printf(“Can not print results of parsing...\n”); __leave;} }
__finally {
if(hAsmFile != INVALID_HANDLE_VALUE) { CloseHandle(hAsmFile); hAsmFile = INVALID_HANDLE_VALUE;} if(cptrAllListing == NULL)
VirtualFree((LPVOID)cptrAllListing, 0, MEM_RELEASE);} return 0;}
// ==============================
// Function FindBlocks
// ==============================
// Finding all blocks in this code
//==============================
BOOL FindBlocks(char *cptrBlockBegin,
DWORD dwBlockSize) {
// Array of known jump commands: char carrJumps [5] [5];
char *cptrPtr1 = cptrBlockBegin; char *cptrPtrEnd = (cptrBlockBegin + dwBlockSize - 1);
PBLOCK_LIST pList01, pList02; while(cptrPtr1 < cptrPtrEnd) { char *cptrP1, *cptrP2; int i = 0;
// Finding first jump command: cptrP1 = strstr(cptrPtr1, carrJumps[i]); if(cptrP1 == NULL) cptrP1 = cptrPtrEnd; cptrFirst = cptrP1; i++;
while(i < 5) {
cptrP1 = strstr(cptrPtr1, carrJumps[i]); if(cptrP1 == NULL) cptrP1 = cptrPtrEnd; if(cptrP1 < cptr First) cptrFirst = cptrP1; i++;}
// If no any more blocks... if(cptrFirst == (cptrPtr + dwBlockSize - 1)) exit;
// Prepare for finding next jump:
62
РИ, 2000, № 1
cptrPtrl = strchr(cptrFirst, if(cptrPtr1 == NULL) cptrPtrl = cptrPtrEnd;
else
cptrPtr1++;
// Working with the list of blocks: pList01 = ptrBlockList; if(pList01 != NULL)
pList02 = pList01->pNext;
else
pList02 = ptrBlockList; while(pList02 != NULL) { pList01 = pList02; pList02 = pList01->pNext; } pList01->pNext = new BLOCK_LIST; pList01->pNext->pNext = NULL; pList->JmpType = TypeOfJump(carrJumps); pList->pBegin = cptrPtr1; pList->pEnd = (cptrPtrEnd - cptrPtr1); } return TRUE;}
6. Заключение
Для анализа оптимальной (рациональной) структуры MISC-процессора были выполнены такие исследования:
— рассмотрены варианты сегментации глобальной микропрограммы в целях локализации ошибок при анализе и выборе оптимальной структуры ММП;
UDC658.012.011.56 ‘
HYBRID LOGIC-DYNAMIC MODEL FOR PROBLEMS OF THE SITUATIONAL CONTROL OF THE COMPLEX TRANSPORT SYSTEMS
KAMAL AHMED S.K., KARGIN A.A., RAHMAN A TIQ UR, SITNIK B. T._________________________
In the present work, for the class of the transport-problems related with the logic-programmed control, the integration of the two classes of models of control - situational control in real time and the logic- dynamic control where the change of the situation takes place through the model of the production situation in the modeling time is proposed. The model was successfully tested in the city transport network of Kharkov.
1. Introduction
For the control of the complex systems the situational model is getting wide spread use [1,2]. Being formed on the basis of the theory of control for the large systems, the situational control is oriented to the use of the knowledge about the object and the methods for its control. The mediums for the formal representation of the situation in the form of the language of the situational
— получены правила определения по внешнему виду выделенного фрагмента конкретной работоспособной структуры ММП из набора имеющихся структур;
— произведена оценка каждой структуры, исходя из характеристик данных аппаратных средств.
Литература: 1. Новосёлов В.В. Метод хронооптимизации блок-схем алгоритмов микропрограммного управления // Автоматика и вычислительная техника, 1983. №3 С. 25-28. 2. Новосёлов В.В., Шумилов Л.А. Выбор структуры микропроцессора на комплекте микропрограммируемых БИС // Управляющие системы и машины, 1983. №3. С. 21-24. 3.НовосёловВ.В., ПарфененокВ.Л. Оптимизация системы синхронизации микропроцессора методами математического программирования. // Деп. ВИНИТИ от 23.12.82, № 6345 — 82 ДЕП. 31 с. 4. Бережная М.А. Лобода
B. Г., Цуканов В.Ю. К вопросу проектирования структуры процессора // Радиоэлектроника и информатика, 1998, №2(3) .С.120-124. 5. Комплект БИСК1804 в процессорах и контроллерах / В.М. Мещеряков, И.Е. Лобов,
C. С. Глебов и др. М.: Радио и связь, 1990. 256 с. 6. Сизов К.А. Микропроцессор будущего: RISC, CISC или MISC?/ / Библиотека информационных технологий: Сборник статей. Вып.1 / Под ред. Г.Р. Громова. М.: Наука, 1990. С.118-124. 7. Ельчанинов Д.Б.,. Лобода В.Г., Цуканов В.Ю. Модели архитектуры MISC - процессора// Радиоэлектроника и информатика, 1999, №1(06). С. 85-89.8. Язык программирования Си / Бриан В. Керниган, Деннис М. Ритчи. М.: Финансы и статистика, 1992. 270 с.
Поступила в редколлегию 17.01.2000
Рецензент:
Цуканов Виталий Юрьевич, аспирант кафедры АПВТ ХТУРЭ. Научные интересы: алгоритмическое и программное обеспечение функционально-ориентированных процессоров. Адрес: 61111, Украина, Харьков, ул. Познанская, 2, кв.67,тел 10-42-63.
control [1,2] ofthe discrete situational network [3], RX-codes and frames 111 are related to the semiotic model for control [4] for which there exists the problem of automatic formation of the model of the situation.
The above mentioned problem can be solved by using the fuzzy models [5,7] if the following two problems are solved: 1)to work out the automatic formation of the structural model of the production-situation on the basis of the information received in the real time mode from the control-measurement instruments and sensors; 2)to introduce the time factor in the fuzzy model of the situational control.
The first problem is solved through introduction of the model of the situation which reflects the production-situation expressed through structured multilevel fuzzy set [8-10] at every moment ofthe real time. The membership function of the elements of the lower level is formed automatically on the basis of the data received from the sensors and the control-measurement instruments and the membership function of the upper level reflects the structured knowledge about the object of control and its environment formed automatically according to the declarative rules. In this way, at every moment of time, an automatically formed fuzzy set represents the model of the real situation. The technology for the formation of the models of the hybrid (accurate and fuzzy) structured situation is given in [10-11].
РИ, 2000, № 1
63