что такое точно “машина регистра”?

Это заменяется "Редактированием Лучшие 200 строк". Можно изменить ту команду в Инструментах> Опции> Обозреватель объектов SQL Server> Команды.

, Но после того как Вы щелкаете правой кнопкой по таблице, выберите "Edit Top 200 Rows", поиск на панели инструментов для кнопки, названной "Шоу Область SQL". Отсюда можно отредактировать запрос, таким образом, сетка показывает подмножество данных, что Вы хотите.

Они сделали это, потому что люди случайно открывали огромные таблицы со старой командой Open Table. Этот метод, кажется, работает вполне прилично, хотя в целом я нахожу, что версия 2008 года является симпатичным wonky, когда говорящий с 2 005 базами данных, но это - другой вопрос....

24
задан Dafydd Rees 25 October 2009 в 23:54
поделиться

6 ответов

Регистровая машина - это аппаратное или программное обеспечение, которое при работе с данными берет их из памяти, помещает в место, где можно быстро с ними работать, а затем возвращает результат.

Например, обычный ЦП - это регистровая машина. Поскольку ALU (устройство, которое работает с числами в ЦП) может работать только с числами в регистре.

Машина на основе стека добавляет данные в стек, а затем либо выталкивает, либо помещает в него данные.

Для Например, сложение двух чисел будет

Push 2 // Push 2 onto the stack
Push 3 // Push 3 onto the stack
Add // Add the top two things on the stack.

В регистровой машине это будет примерно так.

Load x, r0 // Load x onto register 0
Load y, r1 // Load y onto register 1
Add r0, r1, r2 // Add 1 and 2 and store the result in register 2
22
ответ дан 28 November 2019 в 23:23
поделиться

Регистровая машина использует фиксированное количество регистров или сегментов для хранения промежуточных значений. для расчета. Например, команда «добавить» может складывать значения в двух конкретных регистрах и сохранять результат в другом регистре.

Машина на основе стека использует стек для хранения промежуточных значений во время вычислений. Например, чтобы сложить два числа, инструкция «сложить» извлекает два значения из стека, складывает их и помещает результат обратно в стек.

5
ответ дан 28 November 2019 в 23:23
поделиться

Регистровая машина также почти всегда имеет стек.

Но стековая машина редко имеет архитектурно видимые регистры или может иметь только один или два.

Регистровая машина может иметь несколько операций со стеком и может даже иметь режим адресации стека.

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

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

Теперь причины того, что машины с аппаратным регистром быстрее, чем машины с аппаратным стеком, возможно, не связаны с причинами. что программные "регистрирующие" виртуальные машины быстрее, согласно цитируемой статье, чем программные "стековые" машины.

Для программных виртуальных машин это ' Очевидно, это тот случай, когда нужно выполнять меньше инструкций. Это было определено эмпирически в соответствии с утверждениями в цитируемой статье, но я предполагаю, что это связано с тем, что в регистровой машине нужно выполнять гораздо меньше служебных инструкций, таких как push, pop и exchange, и потому, что регистровая машина может легко повторно использовать операнды, если они все еще валяется в файле реестра, не требуя загрузки или push ops. Конечно, на самом деле все это просто память; они виртуальные регистры.

без необходимости загрузки или толчка. Конечно, на самом деле все это просто память; они виртуальные регистры.

без необходимости загрузки или толчка. Конечно, на самом деле все это просто память; они виртуальные регистры.

11
ответ дан 28 November 2019 в 23:23
поделиться

Регистровая машина - это абстрактная машина, коды операций которой определяются посредством ссылки на их работу с набором именованных регистров, а не на их работу в верхней части стека.

В регистровой машине: add можно определить так, чтобы принимать три имени регистра в качестве операндов, складывать содержимое первых двух и помещать результат в третий. (Более распространена конструкция, в которой названы только один или два, а результат всегда записывается в специальный регистр-накопитель, но дело не в этом.)

В стековой машине: add можно определить для извлечения двух операндов из стека. , сложите их и поместите результат в стек.

add можно определить так, чтобы он принимал три имени регистра в качестве операндов, добавлял содержимое первых двух и помещал результат в третий. (Более распространена конструкция, в которой названы только один или два, а результат всегда записывается в специальный регистр-накопитель, но дело не в этом.)

В стековой машине: add можно определить для извлечения двух операндов из стека. , сложите их и поместите результат в стек.

add можно определить так, чтобы он принимал три имени регистра в качестве операндов, добавлял содержимое первых двух и помещал результат в третий. (Более распространена конструкция, в которой названы только один или два, а результат всегда записывается в специальный регистр-накопитель, но дело не в этом.)

В стековой машине: add можно определить для извлечения двух операндов из стека. , сложите их и поместите результат в стек.

2
ответ дан 28 November 2019 в 23:23
поделиться

Сгенерировал ли ваш компилятор машинный код? Если это так, то его целью была регистровая машина (почти все конструкции ЦП являются регистровыми машинами).

Стековые машины хранят все значения в стеке, тогда как регистровые машины имеют фиксированное количество слотов памяти, «адреса» которых не меняются ( в отличие от стековых машин).

2
ответ дан 28 November 2019 в 23:23
поделиться

1) Прав ли я, думая, что будет считаться "стековая машина" с учетом терминология, использованная в цитате выше?

Не совсем. Какой-то стек - это практически единственный способ реализовать рекурсивные вызовы функций. Но «стековая машина» идет намного дальше, выполняя все через стек. Не только вызовы функций, но и арифметические операции. В каком-то смысле они ведут себя так, как будто каждая машинная инструкция - это вызов функции, обрабатываемый через стек. Это обеспечивает очень простой дизайн машины, но довольно сложный для написания ассемблерный / машинный код.

2) Если бы мое предположение в пункте (1) было правильно, как "регистрирующая машина" Работа? т.е. чем он отличается от стековая машина?

Регистровая машина имеет некоторую быструю внутреннюю память (регистры) и выполняет большинство своих операций с данными в этих регистрах. Существуют дополнительные машинные инструкции для копирования данных между регистрами и основной памятью.

IIRC существует два типа стековых машин:

  • Накопительные машины имеют «аккумулятор», который по сути представляет собой единственный регистр, в котором хранятся результаты вычислений ( и может также предоставлять операнд), при этом большинство машинных инструкций работают с аккумулятором.
  • "Чистые" стековые машины помещают результат вычислений поверх стека после использования операндов.
4
ответ дан 28 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: