Open mrp149 opened 7 years ago
Это что такое?
wikipedia: PALcode is Alpha machine code, running in a special mode that also allows access to internal registers specific to the particular Alpha processor implementation. It is thus somewhere between the role of microcode and of a hardware emulator. http://download.majix.org/dec/palcode_dsgn_gde.pdf
проблема микрокода - сложно писать, а палкод дает очень сильное облегчение, тк как это нормалльней команды (а.к.а. экстракоды)
Я посмотрю, не знал раньше про такой метод. Но по большому счёту я не думаю, что имеет смысл сильно погружаться в доработку микрокода.
Этот вопрос обобщается до более фундаментального: что мы хотим получить от имеющейся реализации. Её ценность в том, что она функционально достаточно полная и качественно отлаженная. Доработав её в области внешней шины адрес/данные, внешних прерываний и периферии можно получить вполне законченный и практичный девайс (плату FPGA) уровня Raspberry Pi. И дальше уже заниматься софтом: компилятор, юникс и т.д. Это подход №1: не менять имеющийся микрокод (по возможности).
Подход №2: попробовать улучшить дизайн (и архитектуру) на основе имеющегося микрокода. Тут много направлений: нужен кэш, аппаратный умножитель, убрать теги, вместо них ввести дополнительные биты защиты на уровне страниц, и т.п.
Подход №3: реализовать эту же архитектуру на основе совершенно другой микроархитектуры. Например как конвейерный RISC-процессор. Каждая команда выполняется за 1 такт. Сложные команды типа стековых на стадии Fetch разбивать на две элементарных. Ну и так далее, тут огромный простор.
Да я эту трудность вижу и собственно написал здесь arbiter suspend cases · Issue #3 · besm6/micro-besm
Подход №2: попробовать улучшить дизайн (и архитектуру) Принципиальный вопрос: свёртки надо оставлять? как нестранно, это сильно помогает при оладке. Биг-О (оракл ака сан) сделал в последнем процессоре имитацию свёртки, правда, хранит он ее отдельно и ключ (тэг) программно управляем.
Подход №3: реализовать эту же архитектуру на основе совершенно другой микроархитектуры. как альернатива всегда есть хот-спот метод, Ява доказала, что в большенстве случаев, это работает очень эффективно.
Принципиальный вопрос: свёртки надо оставлять?
Перенести биты тега в таблицу приписки. То есть не каждое слово будет иметь отдельный признак команды/числа/бэсм6, а страница в целом. Большинство битов тега заменяются на режимы доступа страницы: разрешение чтения/записи/выполнения. Бит программной интерпретации тега не нужен. Единственный существенный бит тега, который нужен по делу, это РЭ (режим эмуляции). Он требуется для переключения в режим БЭСМ-6 и обратно. Но он вполне может работать для страницы в целом. Нельзя будет в отной странице смешивать код или данные от 48-битного и 64-битного режимов, но это и не требуется.
как альернатива всегда есть хот-спот метод
Я имею в виду μ-op translation, как это реализовано во всех современных x86 процессорах. Тем более что команды микро-БЭСМ гораздо проще транслируются в микрооперации RISC чем x86.
Нет, не принципиально, с ними возникают трудности, которые достаточно сложно компенсировать удобствами в отладке.
Вот интересная аппаратная платформа для реализации микро-БЭСМ на FPGA: https://circuitmaker.com/Projects/Details/Konstantin-Dimitrov-6/Configum-FPGA-module-in-PLCC-68
Выглядит неплохо! Из схематики я понял что fpga может usb , плюс всего, то что память в самом fpga 576k и ddr sram IS43R86400D-5BLI = 512M (64M x 8) AD/DA не суть, но можно и что-то прикрутить из апликаций (AD5592RBCPZ-1-RL7) Есть что-то такое у Avnet но 1/8 памяти и 3/4 fpga размер of LX16 Avnet Spartan-6 LX9 MicroBoard https://www.xilinx.com/products/boards-and-kits/1-3i2dfk.html $86
Avnet Spartan-6 LX9 MicroBoard The low-cost Spartan-6 FPGA LX9 MicroBoard is the perfect solution for designers interested in exploring the Mic...
Я прихожу к мысли, что микро-БЭСМ имела бы смысл в формате Ардуино. Примерно так: http://www.aloriumtech.com/xlr8/
Только добавить внешнюю память SRAM, карточку микро-SD и разъем для Wi-Fi/Bluetooth ESP32.
И типа такого корпуса сделать.
Сергей, как это видится? навесить доп память на xlr8 @DIO?там стоит Altera-Max10, ее-то хватит? From: Serge Vakulenko Sent: Wednesday, February 7, 2018 5:07 PM Subject: Re: [besm6/micro-besm] features and futures (#2)
Я прихожу к мысли, что микро-БЭСМ имела бы смысл в формате Ардуино. Примерно так: http://www.aloriumtech.com/xlr8/Только добавить внешнюю память SRAM, карточку микро-SD и разъем для Wi-Fi/Bluetooth ESP32.
Альтеры Max10 хватит с хорошим запасом. Я сейчас экспериментирую на плате DE10-Lite: https://www.altera.com/solutions/partners/partner-profile/terasic-inc-/board/de10-lite-board.html
На ней как раз имеется внешняя SDRAM. Можно просто повторить эту часть схемы. Код Verilog для работы с периферией на этой плате можно подсмотреть в проекте MIPSfpga: https://github.com/MIPSfpga/mipsfpga-plus/tree/master/boards/de10_lite
одна старая идея о которой мы не знали в 1986, которую я пытался протокнуть в фу, и которую можно изобразить здесь очень изящно - это ПАЛкод альфа