nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 27 Apr 2024 09:51



This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Троичный процессор 
Author Message
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Я предполагал использовать следующую структуру процессора в своем симуляторе. Не пугайтесь, она только выглядит сложно, на самом деле всё просто ;) RISC к сожалению не получился :D

Code:
Троичный процессор
~~~~~~~~~~~~~~~~~~

Для записи команд и хранения данных используется троичная уравновешенная система счисления, где:

  -1 = N
   0 = 0
  +1 = P

Все команды выполняются за один такт процессора. Память для команд, данных и стека разделены на независимые области.

Есть девять 18-разрядных равноправных регистров:

 - GR00, GR01, GR02, GR10, GR11, GR12, GR20, GR21, GR22

а также:

 - счетчик команд PC
 - указатель стека SP
 - вектор прерывания IV

Флаги:

 - результата сравнения CPF (N - меньше, 0 - равно, P - больше)
 - займа-переполнения BCF (N - займ, 0 - нуль, P - переполнение)

Команды процессора:
~~~~~~~~~~~~~~~~~~~

none - нет операции

movw - пересылка слова из регистра в регистр
ldaw - загрузка слова в регистр из ячейки памяти
staw - сохранение слова из регистра в ячейке памяти

adds - сложение (с учётом знака)
addc - сложение (с учётом знака и переноса)

subs - вычитание (с учётом знака)
subc - вычитание (с учётом знака и переноса)

muls - умножение (с учётом знака)
mulc - умножение (с учётом знака и переноса)

divs - деление (с учётом знака)
divc - деление (с учётом знака и переноса)

brnc - безусловный переход
breq - переход только по равенству (CPF = 0)
brlt - переход только по < (CPF = N)
brgt - переход только по > (CPF = P)
brcc - переход по условию eq=label1, lt = label2, gt = label3

brsb - безусловный вызов подпрограммы
brse - вызов подпрограммы только по равенству (CPF = 0)
brsl - вызов подпрограммы только по < (CPF = N)
brsg - вызов подпрограммы только по > (CPF = P)
brsc - вызов подпрограммы по условию eq=label1, lt = label2, gt = label3

retn - безусловный возврат из подпрограммы
rete - возврат из подпрограммы только по равенству (CPF = 0)
retl - возврат из подпрограммы только по < (CPF = N)
retg - возврат из подпрограммы только по > (CPF = P)


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


13 Dec 2004 13:30
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Post 
Mac Buster wrote:
Я предполагал использовать следующую структуру процессора в своем симуляторе. Не пугайтесь, она только выглядит сложно, на самом деле всё просто ;) RISC к сожалению не получился :D

Code:
Троичный процессор
~~~~~~~~~~~~~~~~~~


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

Разрабатываю архитектуру ЦП на понимать на какой эл базе мы его будем делать, самое простьое сделать тринарный ЦП на бинарной эл. базе. В такаом случаем тритоовая разрядность ЦП долюжеа быть кратана битовой, например 16 или 8


13 Dec 2004 16:15
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Post 
cr0acker wrote:
Mac Buster wrote:
Я предполагал использовать следующую структуру процессора в своем симуляторе. Не пугайтесь, она только выглядит сложно, на самом деле всё просто ;) RISC к сожалению не получился :D

Code:
Троичный процессор
~~~~~~~~~~~~~~~~~~


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

Разрабатываю архитектуру ЦП на понимать на какой эл базе мы его будем делать, самое простьое сделать тринарный ЦП на бинарной эл. базе. В такаом случаем тритоовая разрядность ЦП долюжеа быть кратана битовой, например 16 или 8


Мне кажется, что на уровне отдельных модулей надо делать настоящую троичность, а вот внутри модулей можно и схитрить - т.к. троичной логики еще никто не выпускает, но делая все интерфейсы и внутренние шины троичными мы добъемся гипотетической совместимости в будущем.

_________________
:dj: https://mastodon.social/@Shaos


13 Dec 2004 19:17
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Post 
Shaos wrote:
Мне кажется, что на уровне отдельных модулей надо делать настоящую троичность, а вот внутри модулей можно и схитрить - т.к. троичной логики еще никто не выпускает, но делая все интерфейсы и внутренние шины троичными мы добъемся гипотетической совместимости в будущем.

Согласен. Если мы будем привязывать внутренную структуру к двоичной логике, то дело далеко не пойдёт :)


14 Dec 2004 00:19
Profile
Display posts from previous:  Sort by  
This topic is locked, you cannot edit posts or make further replies.   [ 4 posts ] 

Who is online

Users browsing this forum: No registered users and 31 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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.