Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
Флаги и условные переходы - перпендикулярные понятия. Условный переход реализуется по любому условию, а не только на основании анализа флагов. Для стекового процессора естественно использовать для этого содержимое верхней ячейки стека.
Флаги и условные переходы - перпендикулярные понятия. Условный переход реализуется по любому условию, а не только на основании анализа флагов. Для стекового процессора естественно использовать для этого содержимое верхней ячейки стека.
|
|
|
|
Добавлено: Вс авг 19, 2007 18:27 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): И еще не понятно, как быть с флагами? Хищник писал(а): В простом периферийном контроллере с маленькой памятью? Да ничего такого там не надо.
Условных переходов не будет?
[quote="mOleg"]И еще не понятно, как быть с флагами?[/quote] [quote="Хищник"]В простом периферийном контроллере с маленькой памятью? Да ничего такого там не надо.[/quote]
Условных переходов не будет? :(
|
|
|
|
Добавлено: Вс авг 19, 2007 18:22 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Угу, и уже есть слово "ГрузисьПоШнурку" в кварке.
Угу, и уже есть слово "ГрузисьПоШнурку" в кварке. :)
|
|
|
|
Добавлено: Пт авг 17, 2007 22:29 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Периферийный контроллер - это процессор, решающий задачу дергания ножками внешнего устройства, или перепаковки каких-то данных. Ему не надо много памяти программ, не нужны навороченные команды одноразового использования. Просто "чтобы работало". К тому же 1 августа началось обучение, 9-го я дочитал свой курс, а 27-го уже подведение итогов. А процессор - уже есть...
Периферийный контроллер - это процессор, решающий задачу дергания ножками внешнего устройства, или перепаковки каких-то данных. Ему не надо много памяти программ, не нужны навороченные команды одноразового использования. Просто "чтобы работало". К тому же 1 августа началось обучение, 9-го я дочитал свой курс, а 27-го уже подведение итогов. А процессор - уже есть... ;)
|
|
|
|
Добавлено: Пт авг 17, 2007 18:31 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): в чем выигрыш при двух битах разницы разрядности?
В конкретных ПЛИС-ах имеются конкретные ресурсы.
Когда адрес 8 бит в данную ПЛИС не влазит, а 6 бит влазит - тогда и появляется разница.
[quote="mOleg"]в чем выигрыш при двух битах разницы разрядности? [/quote]
В конкретных ПЛИС-ах имеются конкретные ресурсы.
Когда адрес 8 бит в [u]данную ПЛИС[/u] не влазит, а 6 бит влазит - тогда и появляется разница.
|
|
|
|
Добавлено: Пт авг 17, 2007 18:24 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Хищник писал(а): В простом периферийном контроллере с маленькой памятью?
ладно, просто было и есть интересно, как оно, что и почему
насчет перефирийного контроллера не понял 8(
маленькая память - мне понятно, но слишком маленькое адресное пространство тоже не понятно 8(
в чем выигрыш при двух битах разницы разрядности?
проигрыш в отсутсвии возможности переноса данных между стеками меня пугает Ж8-О
[quote="Хищник"]В простом периферийном контроллере с маленькой памятью?[/quote]
ладно, просто было и есть интересно, как оно, что и почему 8)
насчет перефирийного контроллера не понял 8(
маленькая память - мне понятно, но слишком маленькое адресное пространство тоже не понятно 8(
в чем выигрыш при двух битах разницы разрядности?
проигрыш в отсутсвии возможности переноса данных между стеками меня пугает Ж8-О
|
|
|
|
Добавлено: Пт авг 17, 2007 18:10 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): ну и 2* тоже не очень нужен, так как: DUP + - заменяет запросто lshift А сдвиг на один бит как раз очень просто делается. mOleg писал(а): а если какие и нужны сдвиги, так это циклические. И еще не понятно, как быть с флагами?
В простом периферийном контроллере с маленькой памятью? Да ничего такого там не надо.
[quote="mOleg"]ну и 2* тоже не очень нужен, так как: DUP + - заменяет запросто lshift [/quote] А сдвиг на один бит как раз очень просто делается. [quote="mOleg"]а если какие и нужны сдвиги, так это циклические. И еще не понятно, как быть с флагами?[/quote]
В простом периферийном контроллере с маленькой памятью? Да ничего такого там не надо.
|
|
|
|
Добавлено: Пт авг 17, 2007 18:03 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Хищник писал(а): mOleg писал(а): нуу, не так уж и сильно для 8-то бит, но ответ понятен
Сильно - будет barrel shifter. Ему в таком чипе делать совершенно нечего.
ну и 2* тоже не очень нужен, так как: DUP + - заменяет запросто lshift
а если какие и нужны сдвиги, так это циклические.
И еще не понятно, как быть с флагами?
[quote="Хищник"]mOleg писал(а): нуу, не так уж и сильно для 8-то бит, но ответ понятен
Сильно - будет barrel shifter. Ему в таком чипе делать совершенно нечего. [/quote]
ну и 2* тоже не очень нужен, так как: DUP + - заменяет запросто lshift
а если какие и нужны сдвиги, так это циклические.
И еще не понятно, как быть с флагами?
|
|
|
|
Добавлено: Пт авг 17, 2007 14:58 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): нуу, не так уж и сильно для 8-то бит, но ответ понятен Сильно - будет barrel shifter. Ему в таком чипе делать совершенно нечего. mOleg писал(а): я так понимаю, влияние архитектуры процессоров интеля наблюдается? просто дополнительное адресное пространство мне кажется излишне, впрочем как и Гарвардская архитектура для Форт-процессора,,, но это мое личное убеждение.
Это не интел, это обычная синхронная архитектура. От стробов народ давно отошел, асинхронность в маленьком скоростном чипе - залог нестабильности на электрическом уровне. Чем больше адресных пространств будет - тем лучше, эффективнее используется пропускная способность кристалла. Гарвардская архитектура имела тот недостаток, что требовала много выводов корпуса, что в эпоху DIP40 было нереально.
[quote="mOleg"]нуу, не так уж и сильно для 8-то бит, но ответ понятен[/quote] Сильно - будет barrel shifter. Ему в таком чипе делать совершенно нечего. [quote="mOleg"]я так понимаю, влияние архитектуры процессоров интеля наблюдается? просто дополнительное адресное пространство мне кажется излишне, впрочем как и Гарвардская архитектура для Форт-процессора,,, но это мое личное убеждение.[/quote]
Это не интел, это обычная синхронная архитектура. От стробов народ давно отошел, асинхронность в маленьком скоростном чипе - залог нестабильности на электрическом уровне. Чем больше адресных пространств будет - тем лучше, эффективнее используется пропускная способность кристалла. Гарвардская архитектура имела тот недостаток, что требовала много выводов корпуса, что в эпоху DIP40 было нереально.
|
|
|
|
Добавлено: Пт авг 17, 2007 14:41 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
white_TigR писал(а): mOleg писал(а): по какой причине выбрана различная разрядность стеков? к тому же не кратная
По разрядности того, что там лежит. Стек данных - процесор 8-битный, поэтому для данных и отводится 8 бит. Стек возвратов - адресное пространство 64 ячейки - помещается в 6 бит. Стек циклов - там лежит адрес возврата, нижняя граница, верхняя граница - итого 22 бита. собственно, почему выбрана такая разрядность данных\адресов? white_TigR писал(а): mOleg писал(а): если речь идет о форт-процессоре, то явно не хватает команд обмена данными между стеками... что не есть гут
Разрядность всех стеков разная. вот одно ко второму я и спрашивал почему выбрана разная разрядность и нет методов обмена данными между стеками 8( потому как это очень неразумно, по-моему. Лучше уж пускай биты не используются, чем отсутствует такая возможность(опять же, по-моему white_TigR писал(а): mOleg писал(а): зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак?
lshift, rshift - это которые на произвольное число бит сдвигает? Если да, то они сильно увеличат требование ядра к ресурсам ПЛИС. нуу, не так уж и сильно для 8-то бит, но ответ понятен. white_TigR писал(а): mOleg писал(а): какой смысл в inport outport?
Для общения с "периферией" на кристале. В ядре есть ноги t_addr, t_dout, t_we, t_din. Каждому модулю присвоен свой адресс. "data addr outport" пишет по адрессу addr данные. "addr inport" читает. я так понимаю, влияние архитектуры процессоров интеля наблюдается? просто дополнительное адресное пространство мне кажется излишне, впрочем как и Гарвардская архитектура для Форт-процессора,,, но это мое личное убеждение. white_TigR писал(а): mOleg писал(а): какие у процессора есть регистры?
Кроме регистра "temp" никаких. Smile гм, ну TOP RTOP IP точно есть white_TigR писал(а): mOleg писал(а): опять же не понятно почему выбрана такая маленькая разрядность данных?
По-моему для сопроцессора должно хватить. К тому же разрядность всегда можно увеличить. не совсем понятно, что подразумевается под понятием "сопроцессор" и для чего он может быть предназначен. white_TigR писал(а): Команды сгрупированы по тому, что делают со стеком. Т.е. берут 2 числа, записывают 1. Берут 2 числа, ничего не записывают и т.д... white_TigR писал(а): Команды сгрупированы по тому, что делают со стеком. Т.е. берут 2 числа, записывают 1. Берут 2 числа, ничего не записывают и т.д...
это стоило указать, так как получилось, что + - and or xor nip - арифметика и логика что меня и удивило
[quote="white_TigR"]mOleg писал(а): по какой причине выбрана различная разрядность стеков? к тому же не кратная
По разрядности того, что там лежит. Стек данных - процесор 8-битный, поэтому для данных и отводится 8 бит. Стек возвратов - адресное пространство 64 ячейки - помещается в 6 бит. Стек циклов - там лежит адрес возврата, нижняя граница, верхняя граница - итого 22 бита. [/quote] собственно, почему выбрана такая разрядность данных\адресов?
[quote="white_TigR"]mOleg писал(а): если речь идет о форт-процессоре, то явно не хватает команд обмена данными между стеками... что не есть гут
Разрядность всех стеков разная. [/quote] вот одно ко второму 8) я и спрашивал почему выбрана разная разрядность и нет методов обмена данными между стеками 8( потому как это очень неразумно, по-моему. Лучше уж пускай биты не используются, чем отсутствует такая возможность(опять же, по-моему 8)
[quote="white_TigR"]mOleg писал(а): зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак?
lshift, rshift - это которые на произвольное число бит сдвигает? Если да, то они сильно увеличат требование ядра к ресурсам ПЛИС. [/quote] нуу, не так уж и сильно для 8-то бит, но ответ понятен.
[quote="white_TigR"]mOleg писал(а): какой смысл в inport outport?
Для общения с "периферией" на кристале. В ядре есть ноги t_addr, t_dout, t_we, t_din. Каждому модулю присвоен свой адресс. "data addr outport" пишет по адрессу addr данные. "addr inport" читает. [/quote] я так понимаю, влияние архитектуры процессоров интеля наблюдается? просто дополнительное адресное пространство мне кажется излишне, впрочем как и Гарвардская архитектура для Форт-процессора,,, но это мое личное убеждение.
[quote="white_TigR"]mOleg писал(а): какие у процессора есть регистры?
Кроме регистра "temp" никаких. Smile [/quote] гм, ну TOP RTOP IP точно есть 8)
[quote="white_TigR"]mOleg писал(а): опять же не понятно почему выбрана такая маленькая разрядность данных?
По-моему для сопроцессора должно хватить. К тому же разрядность всегда можно увеличить. [/quote] не совсем понятно, что подразумевается под понятием "сопроцессор" и для чего он может быть предназначен. [quote="white_TigR"]Команды сгрупированы по тому, что делают со стеком. Т.е. берут 2 числа, записывают 1. Берут 2 числа, ничего не записывают и т.д...[/quote] [quote="white_TigR"]Команды сгрупированы по тому, что делают со стеком. Т.е. берут 2 числа, записывают 1. Берут 2 числа, ничего не записывают и т.д...[/quote]
это стоило указать, так как получилось, что + - and or xor nip - арифметика и логика что меня и удивило
|
|
|
|
Добавлено: Пт авг 17, 2007 13:26 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Команды сгрупированы по тому, что делают со стеком.
Т.е. берут 2 числа, записывают 1.
Берут 2 числа, ничего не записывают и т.д...
Команды сгрупированы по тому, что делают со стеком.
Т.е. берут 2 числа, записывают 1.
Берут 2 числа, ничего не записывают и т.д...
|
|
|
|
Добавлено: Чт авг 16, 2007 10:46 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): по какой причине выбрана различная разрядность стеков? к тому же не кратная По разрядности того, что там лежит. Стек данных - процесор 8-битный, поэтому для данных и отводится 8 бит. Стек возвратов - адресное пространство 64 ячейки - помещается в 6 бит. Стек циклов - там лежит адрес возврата, нижняя граница, верхняя граница - итого 22 бита. mOleg писал(а): что такое nip ? nip ( a b -- b ) Число "a" помещается в служебный регистр, из которого вытаскивается командой temp>. Последовательность команд nip temp> эквивалентна команде swap. Swap не вписывается в общую концепцию, т.к. работает сразу с 2 ячейками стека, а в один момент можно переписать только одну ячейку. Поэтому команда swap и была разбита на последовательность nip temp>. mOleg писал(а): зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак? lshift, rshift - это которые на произвольное число бит сдвигает? Если да, то они сильно увеличат требование ядра к ресурсам ПЛИС. mOleg писал(а): какой смысл в inport outport? Для общения с "периферией" на кристале. В ядре есть ноги t_addr, t_dout, t_we, t_din. Каждому модулю присвоен свой адресс. "data addr outport" пишет по адрессу addr данные. "addr inport" читает. mOleg писал(а): какие у процессора есть регистры? Кроме регистра "temp" никаких. mOleg писал(а): опять же не понятно почему выбрана такая маленькая разрядность данных? По-моему для сопроцессора должно хватить. К тому же разрядность всегда можно увеличить. mOleg писал(а): если речь идет о форт-процессоре, то явно не хватает команд обмена данными между стеками... что не есть гут Разрядность всех стеков разная. mOleg писал(а): ну и еще, где можно на это чудо посмотреть? есть ли возможность увидеть HDL проект и какое-нибудь "внутреннее" описание архитектуры?
Пока все в процесе разработки. Через пару недель, после того как все приведу в более-менее нормальный вид, возможно куда-нибудь и выложу.
[quote="mOleg"]по какой причине выбрана различная разрядность стеков? к тому же не кратная[/quote] По разрядности того, что там лежит. Стек данных - процесор 8-битный, поэтому для данных и отводится 8 бит. Стек возвратов - адресное пространство 64 ячейки - помещается в 6 бит. Стек циклов - там лежит адрес возврата, нижняя граница, верхняя граница - итого 22 бита.
[quote="mOleg"]что такое nip ?[/quote] nip ( a b -- b ) Число "a" помещается в служебный регистр, из которого вытаскивается командой temp>. Последовательность команд nip temp> эквивалентна команде swap. Swap не вписывается в общую концепцию, т.к. работает сразу с 2 ячейками стека, а в один момент можно переписать только одну ячейку. Поэтому команда swap и была разбита на последовательность nip temp>.
[quote="mOleg"]зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак?[/quote] lshift, rshift - это которые на произвольное число бит сдвигает? Если да, то они сильно увеличат требование ядра к ресурсам ПЛИС.
[quote="mOleg"]какой смысл в inport outport?[/quote] Для общения с "периферией" на кристале. В ядре есть ноги t_addr, t_dout, t_we, t_din. Каждому модулю присвоен свой адресс. "data addr outport" пишет по адрессу addr данные. "addr inport" читает.
[quote="mOleg"]какие у процессора есть регистры?[/quote] Кроме регистра "temp" никаких. :)
[quote="mOleg"]опять же не понятно почему выбрана такая маленькая разрядность данных?[/quote] По-моему для сопроцессора должно хватить. К тому же разрядность всегда можно увеличить.
[quote="mOleg"] если речь идет о форт-процессоре, то явно не хватает команд обмена данными между стеками... что не есть гут[/quote] Разрядность всех стеков разная.
[quote="mOleg"]ну и еще, где можно на это чудо посмотреть? есть ли возможность увидеть HDL проект и какое-нибудь "внутреннее" описание архитектуры?[/quote]
Пока все в процесе разработки. Через пару недель, после того как все приведу в более-менее нормальный вид, возможно куда-нибудь и выложу.
|
|
|
|
Добавлено: Чт авг 16, 2007 10:17 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
white_TigR писал(а): Итак, текущее состояние PicoForthCPU: Стек данных - 16x8 bit Стек возвратов - 16x6 bit Стек циклов - 16x22 bit по какой причине выбрана различная разрядность стеков? к тому же не кратная 8( white_TigR писал(а): Система команд: + - and or xor nip not /2 *2 inport dup i j temp> do outport drop loop ret что такое nip ? или просто неудачно сгруппированы комманды? зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак? какой смысл в inport outport? зачем добавлять еще одно адресное пространство? какие у процессора есть регистры? white_TigR писал(а): Проблемы: адресуемая память - всего 64 ячейки. Решение видится во введении переходов по адресу со стека, но 256 ячеек тоже может нехватить.
опять же не понятно почему выбрана такая маленькая разрядность данных?
по-моему оптимально было бы 12 бит выбирать как для стеков данных, так и для стека возвратов.
и еще, если речь идет о форт-процессоре, то явно не хватает команд обмена данными между стеками... что не есть гут 8(
ну и еще, где можно на это чудо посмотреть? есть ли возможность увидеть HDL проект и какое-нибудь "внутреннее" описание архитектуры?
[quote="white_TigR"]Итак, текущее состояние PicoForthCPU: Стек данных - 16x8 bit Стек возвратов - 16x6 bit Стек циклов - 16x22 bit [/quote]
по какой причине выбрана различная разрядность стеков? к тому же не кратная 8(
[quote="white_TigR"]Система команд: + - and or xor nip not /2 *2 inport dup i j temp> do outport drop loop ret [/quote] что такое nip ? или просто неудачно сгруппированы комманды?
зачем две команды 2* 2/ - не лучше ли lshft rshift или shift который понимает знак?
какой смысл в inport outport? зачем добавлять еще одно адресное пространство?
какие у процессора есть регистры? [quote="white_TigR"]Проблемы: адресуемая память - всего 64 ячейки. Решение видится во введении переходов по адресу со стека, но 256 ячеек тоже может нехватить.[/quote]
опять же не понятно почему выбрана такая маленькая разрядность данных?
по-моему оптимально было бы 12 бит выбирать как для стеков данных, так и для стека возвратов.
и еще, если речь идет о форт-процессоре, то явно не хватает команд обмена данными между стеками... что не есть гут 8(
ну и еще, где можно на это чудо посмотреть? есть ли возможность увидеть HDL проект и какое-нибудь "внутреннее" описание архитектуры?
|
|
|
|
Добавлено: Чт авг 16, 2007 00:28 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
У /me складывается сильное впечатление, что многие читают самый последний пост и отвечают что-то свое.
У /me складывается сильное впечатление, что многие читают самый последний пост и отвечают что-то свое.
|
|
|
|
Добавлено: Ср авг 15, 2007 22:44 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
ку! писал(а): относительные переходы могут понадобиться, если делать перемещаемый код.
Перемещаемый код в "пико-ядре"????
[quote="ку!"]относительные переходы могут понадобиться, если делать перемещаемый код.[/quote]
Перемещаемый код в "пико-ядре"????
|
|
|
|
Добавлено: Ср авг 15, 2007 22:02 |
|
|
|
|