CDC-160A

Компьютеры прошлого, не попавшие в другие разделы

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

CDC-160A

Post by Lavr »

В большом количестве источников, рассказывающих об истории создания мини-ЭВМ PDP-8, так
или иначе обычно упоминается, что большое влияние на её создателей оказала, в частности, и
CDC-160A от Сеймура Крея.

Неоднократно также упоминается, что и сама CDC-160A вполне засужила титула называться
первой персональной мини-ЭВМ, но успех, массовость и дешевизна PDP-8 её просто затмили.

В общем стало мне очень интересно ознакомиться с этой самой CDC-160A, что я и сделал.

Да, мини-ЭВМ размером с письменный столик вполне может считаться персональной.
cdc160-3.gif
Внешние устройства, правда, крупноваты, да и стартовая цена не совсем персональная - $100 000 :wink:
CDC_160.console.1.gif
CDC_160.console.2c.gif
Поэтому применялась эта мини-ЭВМ в серьёзных организациях типа NASA и т.п.

Но меня больше интересовал не внешний вид, а организация этой мини-ЭВМ, и в этой связи хороший
материал я нашел вот здесь:
The Control Data Corporation 160 Computer
A Programmer's Reference Manual for the CDC-160

По ссылкам нет гигантских *.PDP-документов, всё кратко, доступно, доходчиво, на английском. :wink:

Ну что я могу сказать, по структуре PDP-8 на CDC-160A весьма похожа, видимо проще
сделать уже совсем трудно или даже невозможно.

А вот по функциональным возможностям PDP-8 супротив CDC-160A весьма-таки урезана.

В CDC-160A есть такая вкусная "плюшка", позже появившаяся в 6502, как относительная адресация.
В PDP-8 этого уже не было, но, видимо, все упрощения, как и автоматизированная сборка,
собственно, и позволили наначить PDP-8 довольно демократичную стартовую "персональную"
цену в $18 500, а потом и эта цена неуклонно снижалась...
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: CDC-160A

Post by Lavr »

Кстати говоря, CDC-160A от Сеймура Крея была бесстековой машиной, и задачу возврата из подпрограммы решала довольно интересным программным способом:

Вход в подпрограмму:

Code: Select all

x  : 010010000000 - Load Forward Relative - Читаем
x+1:     x+6      - (return address) - адрес возврата
x+2: 100001000000 - Store Indirect - сохраняем перед
x+3:      p       - (destination return link) - подпрограммой
x+4: 111001000000 - Jump Forward Indirect - переход в
x+5:     p+1      - (destination address) - подпрограмму
x+6: return address - адрес возврата
Выход из подпрограммы:

Code: Select all

p-1: 111001000000 - Jump Forward Relative - выход на
p  :      -       - (return address) адрес возврата из п.п.
p+1:     ...      - Entry Point - точка входа в подпрограмму
         ...
         ...      - (function body) - тело подпрограммы
         ...
p+n: 111001000000 - Jump Forward Indirect переход на
   :     p-1      - (address of return jump) адрес выхода из п.п.
В PDP-8 это уже делали короче: адрес возврата сохраняли в первой строке подпрограммы.
А в конце подпрограммы был косвенный переход по сохранённому адресу возврата.
Оба способа не позволяют осуществлять рекурсию, поэтому в PDP-8 применяли и программный
стек. Что-то похожее я делал с Гигатроном.

Но в этих машинах трюк с программным стеком получается короче, в силу того, что память -
12-разрядная и адрес 12-разрядный. А у Гигатрона: память 8-разрадная, а адрес - 16 разрядный.
iLavr