Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) ( 36 ) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (36)

водить данные можно с такой же скоростью. Единственным ограничением является время распространения данных через FIFO, равное времени передачи входного слова на выход незаполненного буфера FIFO. Оно равняется произведению времени внутреннего сдвига и числа регистров данных. В буферах FIFO, выполненных по МОП-технологии и имеющих емкость 64 слова, время распространения составляет примерно 30 мкс, а в биполярных FIFO такой же емкости - примерно 2 мкс.

Данные буферы можно наращивать как по числу слов, так и по их длине.

3-13. СТЕКОВАЯ ПАМЯТЬ

Стековой называют память, доступ к которой организован по принципу: «последним записан - первым считан» (last input first output -LIFO). Использование принципа доступа к памяти на основе механизма LIFO началось с больших ЭВМ. Использование стековой памяти оказалось очень эффективным при построении компилирующих и интерпретирующих программ, при вычислении арифметических выражений с использованием польской инверсной записи. В малых ЭВМ стековая память стала широко использоваться в связи с удобствами реализации процедур вызова подпрограмм и при обработке прерываний.

Принцип работы стековой памяти поясняется на рис. 3-39. Когда слово А помещается в стек, оно располагается в первой свободной ячейке памяти. Следующее записываемое слово перемещает предыдущее на одну ячейку вверх и занимает его место и т.д. Запись 8-го кода, после Н, приводит к переполнению стека и потере кода А. Считывание кодов из стека осуществляется в обратном порядке, т. е. начиная с кода Н, который был записан последним. Необходимо отметить, что выборка, например, кода Е невозможна до выборки кода F, что определяется используемым механизмом обращения при записи и чтении типа LIFO. Для фиксации момента переполнения стека в принципе желательно формировать признак переполнения.

Перемещение данных при записи и считывании информации в стековой памяти может быть фактическим подобно тому, как это имеет место, например, в сдвигающих регистрах, или может моделироваться. С точки зрения реализации механизма доступа к стековой памяти выделяют аппаратный и аппаратно-программный (внешний) стек.



•£

Низ стена

Рис. 3-39. Принцип работы стековой памяти

Аппаратный стек представляет собой совокупность регистров, связи между которыми организованы таким образом, что при записи и считывании данных содержимое стека автоматически сдвигается. Обычно емкость аппаратного стека ограничена диапазоном от нескольких регистров до нескольких десятков, поэтому в большинстве МП такой стек используется для хранения содержимого программного счетчика и его называют стеком команд. Основное достоинство аппаратного стека - высокое быстродействие, а недостаток - ограниченная емкость.

Аппаратно-программный, или внешний, стек. Наиболее распространенным в настоящее время и, возможно, лучшим вариантом организации стека в ЭВМ является использование области ЗУПВ. Для адресации стека используется указатель стека, который предварительно загружается в регистр и определяет адрес последней занятой ячейки. Помимо команд CALL и RET, которые используют стек для спасения и восстановления содержимого программного счетчика, имеются также команды PUSH и POP, которые используются для временного запоминания в стеке содержимого регистров и их восстановления соответственно. В некоторых МП запоминание содержимого регистров в стеке осуществляется автоматически при прерывании программ. Принцип организации аппаратно-программного стека иллюстрирует рис. 3-40. При выполнении записи содержимого регистра (Рг) под действием команды PUSH реализуются следующие микрооперации:

(УС) := (УС)-1; ((УС)) = (Рг).

Таким образом, после записи очередного слова в стек указатель стека хранит адрес ячейки, в которую было произведено последнее обращение. Содержимое УС при записи уменьшается, что является характерным для МП КР580 и процессоров СМ,



Память

Загрузна

+1 -/

Область стекоВои памяти

Рис. 3-40. Принцип организации аппаратно-программного стека

Чтение информации из ячейки памяти стека реализуется при выполнении команды POP:

(Рг): = ((УС)); (yC): = (yC)-fl.

Таким образом, механизм доступа к памяти по принципу FIFO в аппаратно-программном стеке реализуется за счет уменьшения или увеличения содержимого УС на 1 при выполнении команд PUSH и POP соответственно. Следует, отметить, что в данном типе стека не формируются признаки переполнения результата аппаратным путем.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Какие факторы влияют на структуру процессоров, реализованных на основе БИС?

2. Что составляет понятие архитектуры ЭВМ?

3. Перечислите состав и назначение типичных функциональных блоков процессора.

4. Объясните функциональное назначение управляющих сигналов в процессоре.

5. Какие достоинства и недостатки присущи однокристальным и секционным микропроцессорам?

6. Сравните различные варианты организации шии в процессоре.

7. Какие способы кодирования микрокоманд используются в микропрограммном устройстве управления?

8. Каково минимальное число состояний для выполнения машинного цикла в МП КР580 и почему?

9. Какие действия выполняются в каждом из состояний машинного цикла для МП КР580?

10. Назовите основные способы программирования постоянной памяти.

П. Какое иазначеиие в БИС памяти имеет вход выборки кристалла?

12. В чем отличие памяти статического и динамического типов?

13. С какой целью в ЭВМ применяется стековая память?

14. Каким образом осуществляется запись и чтение информации из стековой памяти?



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) ( 36 ) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124)