Введение
ZEBRA (Zeer Eenvoudige Binaire Reken Automaat, что переводится как Очень простой автоматический двоичный калькулятор) был одним из первых компьютеров, спроектированных в Нидерландах (первым был "ARRA") и одним из первых голландских компьютеров, поступивших в коммерческую продажу. Он был разработан Виллемом ван дер Поэлем из Нидерландской почты, телеграфа и телефонии и впервые поставлен в 1958 году. Серийный выпуск составил пятьдесят пять машин, изготовленных и продаваемых британской компанией Standard Telephones and Cables, Ltd. ZEBRA был двоичным компьютером с двумя адресами и 33-битной разрядностью слова. Память обеспечивалась магнитной барабанной памятью объемом 8К слов, организованной в 256 дорожек по 32 инструкции; аккумуляторы также были реализованы в виде циклических дорожек барабана, аналогично использованному в Bendix G 15. Периферийные устройства включали в себя считыватель и перфоратор бумажной ленты, а также телетайп. В 1967 году шесть компьютеров Zebra использовались в университетах и технических колледжах Великобритании.
The ZEBRA (Zeer Eenvoudige Binaire Reken Automaat translated Very Simple Binary Automatic Calculator) was one of the first computers to be designed in the Netherlands, (the first one was the "ARRA") and one of the first Dutch computers to be commercially available. It was designed by Willem van der Poel of the Netherlands Post, Telegraph and Telephone, and first delivered in 1958. The production run consisted of fifty five machines, manufactured and marketed by the British company Standard Telephones and Cables, Ltd. The ZEBRA was a binary, two address machine with a 33 bit word length. Storage was provided by a magnetic drum memory holding 8K words organised as 256 tracks of 32 instructions; accumulators were also implemented as recirculating drum tracks in a manner similar to that used in the Bendix G 15. Peripherals included paper tape reader and punch, and a teleprinter. In 1967, six Zebra computers were in use in UK universities and technical colleges.
Программирование
Большая часть кода и операционных систем для ZEBRA была написана глухонемым математиком Герритом ван дер Меем. В отличие от большинства процессоров, ZEBRA не имела различных типов инструкций. Вместо этого, выполнение инструкции контролировалось пятнадцатью битами в поле операции. Также, в ней не было счетчика программ в традиционном понимании. Инструкция ZEBRA состоит из 33 бит, включающих 13-битный адрес барабана, указывающий на один из 256 треков, содержащих 32 записи на барабане памяти, 5-битный адрес регистра (или ввода-вывода) и 15-битное поле операции. Каждый бит поля операции имел четкое значение и мог использоваться в практически любой комбинации, что позволяло реализовать множество элегантных приемов, которые сегодня можно отнести к области микропрограммирования. Биты операции определяли, например, знак используемых данных, очистку аккумулятора (преобразующую сложение в загрузку), необходимость выполнения вращения и так далее. Кроме того, существовали биты операции, определяющие, откуда будет взята следующая инструкция – из регистра, памяти или их суммы. Некоторые биты делали выполнение инструкции зависимым от состояния аккумулятора, как в машинах Zuse Z22 или Electrologica X1. Умножение, деление, извлечение квадратного корня, а также все операции с плавающей точкой выполнялись подпрограммами, использующими базовые арифметико-логические примитивы последовательного компьютера: сложение, вычитание, сдвиг вправо, сдвиг влево и инкремент. Благодаря продуманной конструкции, для умножения требовалось всего одно машинное действие на бит, а для деления – два, что обеспечивало относительно высокую скорость умножения и деления при минимальном объеме аппаратных средств. В качестве средств поддержки программирования предоставлялись Нормальный код (ассемблер), утилита трассировки, интерпретационная система с плавающей точкой, Простой код, Интерпретационная схема матриц и компилятор Algol. Поскольку магнитный барабан не поддерживает прямой доступ, некоторое время тратилось впустую в ожидании поступления инструкции или данных. В неоптимизированной программе среднее время ожидания могло составлять половину времени оборота барабана, но существовали способы его сократить. Одной из особенностей ZEBRA был счетчик, измерявший долю времени, в течение которого машина находилась не в состоянии ожидания; он назывался "измерителем эффективности". При работе с интерпретационной системой с плавающей точкой измеритель эффективности обычно показывал около 50%, но при посещении потенциальных клиентов загружалась более эффективная программа для демонстрации.