http://zeux.livejournal.com/ ([identity profile] zeux.livejournal.com) wrote in [personal profile] dr_klm 2010-12-15 09:09 pm (UTC)

Прошу прощения, забыл. Если стек это не выделенная область памяти, то вообще все достаточно жестоко - надо поддерживать многопоточность, т.е. иметь всю ту механику которая есть сейчас в стиле store queues, load queues, решать load/store конфликты и т.п. - с тем исключением что собственно hazards будут на каждом шагу - записали на стек, прочитали со стека, записали, прочитали, и т.п. - т.е. если сейчас некоторые архитектуры могут себе позволить пенальти в 60 тактов за Load Hit Store (read after write hazard), например, то в стековых пощады не будет.

А, и еще надо уметь все кеши которые есть на верхушку стека (состояния "регистров" т.е. - в стиле "значение есть на int конвеере, можно забирать") уметь сбрасывать по любой записи на стек другой инструкцией этого потока, ну или при загрузке cache line.

Я всегда считал, что главное достоинство стековой модели - простота концепции, ну и тот факт что древовидные вычисления естественным образом представимы в виде набора стековых инструкций. Вроде бы, как только надо серьезно оптимизировать, все становится сложнее, чем в регистровой.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting