|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Программная модель Intel 8080/КР580ВМ80А
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Shaos но весьма много простых контроллеров так и было сделано!
И я думаю - создатели это предусмотрели: простую систему можно построить
без буферов шин и системного контроллера, лишь с двумя стробами - WR и DBIN.
А хочешь сложную - наворачивай остальное.
Вопрос в том, что для нормальной работы аппаратного эмулятора может и не
надо точное потактовое соблюдение сигналов проца - достаточно соблюсти их
чтобы с ПЗУ, ОЗУ и УВВ можно было корректно обмениваться - вот я о чем...
_________________ iLavr
|
28 Aug 2012 15:55 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Как это не подходит? Это нормальный сигнал RD без инверсии.
|
28 Aug 2012 20:52 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22730 Location: Silicon Valley
|
Что-то вспоминается мне, что в Радио писалось, что он толи коротковат толи ещё что...
|
28 Aug 2012 21:26 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Не, это не про него!... С ним - как раз всё хорошо!
И даже я теперь склоняюсь к мысли, что и высокий активный уровень у него нарошно предусмотрен!
PS. Да вот хотя бы простой пример контроллера на i8080...
_________________ iLavr
|
28 Aug 2012 21:34 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
И они снова откопали стюардессу... Отличный проект, спасибо за ссылку.
|
29 Aug 2012 01:58 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Мозги короткие у сказавшего это. А ты бы мог заюзать нашу умную книжку, а не слушать слухи.
|
29 Aug 2012 04:52 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22730 Location: Silicon Valley
|
ага и точно - всё красиво
|
29 Aug 2012 06:11 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22730 Location: Silicon Valley
|
Вот в этом топике выясняли этот момент:
http://www.nedopc.org/forum/viewtopic.php?t=8790
Я его сделал ещё в 2007 году
|
06 Sep 2012 09:02 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Объясните мне одну вещь, пожалуйста, уважаемые авторы прецизионных эмуляторов.
Известно ведь, что если представить байт кода операции i8080 как
D7 D6 D5 D4 D3 D2 D1 D0, то
Почему тогда в ваших исходниках (и не только в ваших) код операции анализируется
в длинном:
Разве не было бы быстрее - выделить два старших бита в опкоде - D7 D6
и по их значению организовать 4 более коротких цикла switch (opcode)
по 4-м группам опкодов?
В этом случае, как мне представляется, опкоды 0FFh и 3Fh, к примеру,
анализировались бы одинаково быстро.
А в одном длинном switch (opcode) до значения 0FFh проверяются 255 других,
в то же время опкод 3Fh анализируется гораздо быстрее!
Или я в чем-то заблуждаюсь?
_________________ iLavr
|
10 Sep 2012 02:35 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
| | | | Lavr wrote: Объясните мне одну вещь, пожалуйста, уважаемые авторы прецизионных эмуляторов. Известно ведь, что если представить байт кода операции i8080 как D7 D6 D5 D4 D3 D2 D1 D0, то Почему тогда в ваших исходниках (и не только в ваших) код операции анализируется в длинном: Разве не было бы быстрее - выделить два старших бита в опкоде - D7 D6и по их значению организовать 4 более коротких цикла switch (opcode)по 4-м группам опкодов? В этом случае, как мне представляется, опкоды 0FFh и 3Fh, к примеру, анализировались бы одинаково быстро. А в одном длинном switch (opcode) до значения 0FFh проверяются 255 других, в то же время опкод 3Fh анализируется гораздо быстрее! Или я в чем-то заблуждаюсь? | | | | |
Потому что компилятор C развернет этот длинный switch в jump table, который будет работать гораздо быстрее, чем любая логика по разбору опкодов по методу дизассемблера.
Фактически, этот switch будет реализован одним jmp'ом.
|
10 Sep 2012 02:39 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я этого не знал... но как поступят Java, Java Script - там тоже ты применяешь
этот длинный цикл?
А я пытаюсь на ассемблере PIC это сделать - как будет лучше?
_________________ iLavr
|
10 Sep 2012 02:43 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
Для JavaScript вообще нет никакой гарантии. Надо тупо сравнивать реализации. Я этим не занимался, и уверен, что мой код i8080 на JS можно реально ускорить. Но это дело неблагодарное, так как в разных браузерах все будет по-разному.
Для Java всегда можно посмотреть генерируемый байт-код. Предположу, что там будет таблица, как в С, но сам не проверял. До версии эмулятора на JS у меня был попытка написать эмуль в виде Java Applet, но проект умер на стадии отладки, так как у меня аллергия на Java .
А для PIC'ов обычно применяются более менее стандартные приемы оптимизации для языка C. Но вы всегда можешь глянуть код, который генерит твой компилятор. Вот, например, что генерит XC32 с -O3 для моего файла i8080.c. 100% это jump table.
| | | | Code: ... jal rk86_memory_read_byte sh $2,18($16)
sltu $3,$2,256 bne $3,$0,.L286 lui $3,%hi(.L242)
li $2,-1 # 0xffffffffffffffff .L69: lw $31,28($sp) lw $17,24($sp) lw $16,20($sp) j $31 addiu $sp,$sp,32
.L286: sll $2,$2,2 addiu $3,$3,%lo(.L242) addu $2,$3,$2 lw $2,0($2) j $2 <-- волшебный jmp nop
.align 2 .align 2 .L242: .word .L4 .word .L5 .word .L6 .word .L7 .word .L8 .word .L9 .word .L10 .word .L11 .word .L4 .word .L12 .word .L13 .word .L14 .word .L15 .word .L16 .word .L17 .word .L18 .word .L4 .word .L19 .word .L20 .word .L21 .word .L22 .word .L23 .word .L24 .word .L25 .word .L4 .word .L26 .word .L27 .word .L28 .word .L29 .word .L30 .word .L31 ...
| | | | |
|
10 Sep 2012 03:00 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну - проще говоря, это загрузка программного счётчика значением адреса перехода по таблице... так?
_________________ iLavr
|
10 Sep 2012 03:30 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
|
10 Sep 2012 03:36 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22730 Location: Silicon Valley
|
в джаве тоже таблица - там спец-команда есть если я не ошибаюсь для реализации свича
|
10 Sep 2012 05:31 |
|
|
Who is online |
Users browsing this forum: No registered users and 5 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|