Академический Документы
Профессиональный Документы
Культура Документы
ddr4 Как Востоновить 0 - 240517 - 110136
ddr4 Как Востоновить 0 - 240517 - 110136
RU 2 638 641 C2
(51) МПК
G06F 9/30 (2006.01)
ФЕДЕРАЛЬНАЯ СЛУЖБА
ПО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ
R U
Приоритет(ы):
(56) Список документов, цитированных в отчете
(30) Конвенционный приоритет:
о поиске: US 6122725 A, 19.09.2000. US
28.06.2013 US 13/931,070
7568087 B2, 28.07.2009. US 6542988 B1,
(43) Дата публикации заявки: 31.05.2017 Бюл. № 16 01.04.2003. US 6871273 B1, 22.03.2005. RU
2 6 3 8 6 4 1
2419836 C2, 27.05.2011.
(45) Опубликовано: 14.12.2017 Бюл. № 35
C 2
Адрес для переписки:
109012, Москва, ул. Ильинка, 5/2, ООО
"Союзпатент"
2 6 3 8 6 4 1
ширину; блок декодирования для приема завершения записи в регистр с набором разрядов,
инструкции загрузки парциальной ширины, хранящихся на оставшейся ширине регистра,
причем инструкция загрузки парциальной ширины которые имеют значения разрядов, которые
указывает ячейку памяти в качестве операнда зависят от режима загрузки парциальной ширины
источника и указывает регистр в качестве процессора, при этом инструкция загрузки
операнда назначения; подсистему памяти, парциальной ширины не указывает режим
соединенную с блоком декодирования, причем загрузки парциальной ширины. 4 н. и 21 з.п. ф-
подсистема памяти предназначена для загрузки лы, 17 ил.
Стр.: 1
R U 2 6 3 8 6 4 1 C 2
Стр.: 2
C 2 2 6 3 8 6 4 1 R U
RUSSIAN FEDERATION (19) (11) (13)
RU 2 638 641 C2
(51) Int. Cl.
G06F 9/30 (2006.01)
FEDERAL SERVICE
FOR INTELLECTUAL PROPERTY
R U
Priority:
(30) Convention priority:
28.06.2013 US 13/931,070
2 6 3 8 6 4 1
(45) Date of publication: 14.12.2017 Bull. № 35
Mail address:
C 2
C 2
109012, Moskva, ul. Ilinka, 5/2, OOO "Soyuzpatent"
(54) PARTIAL WIDTH LOADING DEPENDING ON REGIME, IN PROCESSORS WITH REGISTERS WITH
LARGE NUMBER OF DISCHARGES, METHODS AND SYSTEMS
2 6 3 8 6 4 1
(57) Abstract:
FIELD: information technology. instruction, for writing at least a portion of the
SUBSTANCE: processor for loading data contains downloaded data on the partial width of the register and
a register which has a width; a decoding unit for for completing writing to the register with a set of digits
receiving a partial width loading instruction. The partial stored on the remaining width of the register which
width loading instruction indicates the memory location have bit digits which depend on the regime of loading
as the source operand and indicates the register as the the processor's partial width. The partial width loading
destination operand; a memory subsystem connected instruction does not indicate the partial width loading
to the decoding unit. The memory subsystem is designed regime.
to load data from a specified memory location to the EFFECT: improving the performance of processor
processor, in response to a partial width loading systems by using several regimes to process the loading
R U
instruction; and a register writting unit connected to the instruction of the partial width and its operation code.
memory subsystem and the register. The register writing 25 cl, 17 dwg
unit is designed, in response to the partial width loading
Стр.: 3
R U 2 6 3 8 6 4 1 C 2
Стр.: 4
C 2 2 6 3 8 6 4 1 R U
RU 2 638 641 C2
Стр.: 5
RU 2 638 641 C2
Стр.: 6
RU 2 638 641 C2
для обработки заданной инструкции и/или заданного кода операции двумя или более
различными соответствующими способами, например, два или более режима для
обработки загрузки парциальной ширины из инструкции памяти двумя или более
различными соответствующими способами. В следующем описании изложены
5 многочисленные конкретные детали (например, конкретные операции инструкций,
конфигурации процессора, детали микроархитектуры, последовательности операций
и т.д.). Однако варианты осуществления могут применяться на практике без этих
конкретных деталей. В других случаях хорошо известные схемы, структуры и технологии
не были показаны подробно во избежание усложнения понимания описания.
10 На фиг. 1 показана блок-схема варианта осуществления компьютерной системы 100.
В различных вариантах осуществления компьютерная система может представлять
собой настольный компьютер, портативный компьютер, компьютер типа "ноутбук",
планшетный компьютер, нетбук, смартфон, персональный цифровой помощник, сотовый
телефон, сервер, сетевое устройство (например, маршрутизатор или коммутатор),
15 мобильное интернет-устройство (MID), медиапроигрыватель, интеллектуальный
телевизор, телевизионную приставку, контроллер видеоигры или другой тип
электронного устройства.
Компьютерная система включает в себя вариант осуществления процессора 101. В
некоторых вариантах осуществления процессор может представлять собой процессор
20 общего назначения. Например, процессор может представлять собой процессор общего
назначения типа, который обычно используется в качестве центрального процессорного
устройства (ЦПУ). В других вариантах осуществления процессор может представлять
собой процессор специального назначения. Примеры подходящих процессоров
специального назначения включают в себя, но не ограничиваются ими, сопроцессоры,
25 графические процессоры, коммуникационные процессоры, сетевые процессоры,
криптографические процессоры, встроенные процессоры и процессоры цифровых
сигналов (DSPS), и это всего лишь несколько примеров. Процессор может представлять
собой любой из различных процессоров с полным набором команд (CISC), различных
процессоров с сокращенным набором команд (RISC), различных процессоров со
30 сверхдлинным командным словом (VLIW), различных их гибридов или совершенно
другие типы процессоров.
Компьютерная система также включает в себя вариант осуществления памяти 110.
Память соединена с процессором 101 с помощью механизма 109 соединений или
межсоединений. Примеры подходящих механизмов соединений или межсоединений
35 включают в себя, но не ограничиваются ими, один или более межсоединений, шины,
концентраторы, контроллеры памяти, наборы микросхем, компоненты набора
микросхем и т.п. и различные их комбинации. Память может включать в себя один или
более устройств памяти одинакового типа или различных типов. Одним широко
используемым типом памяти, который подходит для вариантов осуществления, является
40 динамическое запоминающее устройство (DRAM), хотя альтернативно можно
использовать и другие типы памяти (например, флеш-память). Память может иметь
программное обеспечение, которое хранится в ней, например, одну или более
операционных систем (OS) и одну или более прикладных программ (не показаны). Во
время работы инструкции программного обеспечения могут подаваться в процессор
45 и исполняться процессором.
Как показано, инструкцию 102 загрузки парциальной ширины можно подавать в
процессор 101.
Например, блок выборки (не показан) может осуществлять выборку инструкции
Стр.: 7
RU 2 638 641 C2
Стр.: 8
RU 2 638 641 C2
техники". Блок декодирования может быть связан с или иным образом поддерживать
связь с режимом 105 загрузки парциальной ширины. В некоторых вариантах
осуществления режим загрузки парциальной ширины может включать в себя один или
более разрядов для указания одного из многочисленных различных режимов загрузки
5 парциальной ширины. В другом аспекте можно использовать два или более разрядов
для указания одного из двух, по меньшей мере трех, по меньшей мере четырех или
дополнительно более чем четырех различных режимов загрузки парциальной ширины.
В некоторых вариантах осуществления один или более разрядов можно сохранить в
регистре 106 (например, в регистре управления, статуса или конфигурации) или другой
10 ячейке памяти на кристалле. В качестве альтернативы, режим загрузки парциальной
ширины можно дополнительно включить в один или более отдельных или
изолированных разрядов необязательно в регистре управления, статуса или
конфигурации. Как будет дополнительно объяснено ниже, программный модуль
(например, модуль приложения пользовательского уровня, модуль операционной
15 системы, модуль монитора виртуальной машины, привилегированный программный
модуль и т.п.) может изменять режим 105 загрузки парциальной ширины (например,
путем изменения одного или более разрядов) на режим, который является подходящим,
желаемым или предназначенным для инструкции 102 загрузки парциальной ширины
(например, программное обеспечение, использующее инструкцию загрузки парциальной
20 ширины).
Блок декодирования и/или процессор могут осуществлять доступ к режиму загрузки
парциальной ширины для определения того, какой используется текущий режим загрузки
парциальной ширины, и блок декодирования может декодировать инструкцию загрузки
парциальной ширины согласно определенному режиму загрузки парциальной ширины.
25 В некоторых вариантах осуществления режим загрузки парциальной ширины можно
использовать для обеспечения различных значений, интерпретации и/или операций для
инструкции загрузки парциальной ширины и/или ее кода операции. В некоторых
вариантах осуществления блок декодирования может включать в себя логическую
схему 104 декодирования, зависящего от режима загрузки парциальной ширины, для
30 декодирования инструкции загрузки парциальной ширины таким способом, который
зависит от, базируется на и/или согласуется с текущим режимом загрузки парциальной
ширины, связанным с инструкцией (например, с режимом во время декодирования
инструкции). Например, первый набор из одной или более инструкций или сигналов
управления можно декодировать из инструкции загрузки парциальной ширины в первом
35 режиме загрузки парциальной ширины, тогда как второй другой набор из одной или
более инструкций или сигналов управления можно декодировать из инструкции загрузки
парциальной ширины (например, того же самого кода операции) во втором другом
режиме загрузки парциальной ширины. Инструкции или сигналы 107 управления,
которые зависят от режима, можно выводить из блока декодирования в соответствии
40 с текущим режимом 105.
В некоторых вариантах осуществления инструкцию загрузки парциальной ширины
нельзя точно определить или иным образом указать режим 105 загрузки парциальной
ширины (например, могут отсутствовать разряды инструкции для выбора или для
различения многочисленных различных разновидностей инструкций/операций или
45 точного определения режима иным образом). Это обычно помогает избежать увеличения
длины инструкции, позволяет потенциально использовать технологию, где длина
инструкции не разрешает такие дополнительные разряды, позволяет потенциально
уменьшить или ограничить число разрядов, которые необходимо декодировать, или
Стр.: 9
RU 2 638 641 C2
Стр.: 10
RU 2 638 641 C2
Стр.: 11
RU 2 638 641 C2
Стр.: 12
RU 2 638 641 C2
Стр.: 13
RU 2 638 641 C2
Стр.: 14
RU 2 638 641 C2
Стр.: 15
RU 2 638 641 C2
позволяет точно определить или иным образом указать режим загрузки парциальной
ширины (например, не может иметь разряд(ы) для точного определения режима или
выбора предварительно определенного режима).
Способ дополнительно включает в себя проверку или определение иным образом
5 режима загрузки парциальной ширины на этапе 432. В качестве альтернативы, режим
загрузки парциальной ширины может быть автоматически назначен без необходимости
проверки или определения его. Способ также включает в себя загрузку данных из
указанной ячейки памяти в процессор в ответ на инструкцию загрузки парциальной
ширины на этапе 433.
10 Способ включает в себя запись по меньшей мере части загруженных данных на
парциальной ширине регистра назначения в ответ на инструкцию загрузки парциальной
ширины на этапе 434. Можно записать все загруженные данные или только часть их в
зависимости от реализации инструкции. В одном примерном варианте осуществления
32 разряда из загруженных данных можно записать в 32-разрядную половину самого
15 младшего разряда 64-разрядного регистра назначения. В других вариантах
осуществления можно дополнительно использовать другие размеры данных
парциальной ширины и/или регистров назначения.
Способ также включает в себя завершение записи регистр назначения с набором
разрядов, которые хранятся на оставшейся ширине регистра назначения (то есть, в
20 части, которая не используется для хранения данных парциальной ширины) и которые
имеют значения разрядов, которые зависят от режима загрузки парциальной ширины
процессора на этапе 435. Эти разряды могут различными (то есть иметь различные
значения разрядов) от одного режима к другому. В некоторых вариантах осуществления,
в первом режиме 436, они могут дополнительно включать в себя копирование, запись
25 или иное сохранение знаковых разрядов (например, копий знакового разряда данных
парциальной ширины) на оставшейся ширине регистра назначения на этапе 437. В
некоторых вариантах осуществления, во втором режиме 438, они могут дополнительно
включать в себя запись всех нулей на всей оставшейся ширине регистра назначения на
этапе 439. В другом варианте осуществления этих первый и второй режимы можно
30 заменить на режим, в котором используется режим загрузки с объединением или
объединенной парциальной шириной или некоторый другой тип режима загрузки
парциальной ширины.
Вышеупомянутый способ был описан в относительно простой форме, хотя операции
можно дополнительно добавить к и/или удалить из способа. Например, как было
35 упомянуто выше, определение режима загрузки парциальной ширины является
дополнительным (например, его можно ввести вместо этого способа). В качестве
другого примера, можно дополнительно добавить дополнительные операции, такие,
например, как декодирование инструкции, выборка инструкции, передача разрядов по
шине, прием разрядов из шины и т.д. В качестве другого примера, в данный способ
40 можно дополнительно добавить операции, связанные с использованием результата в
регистре назначения. Например, результат загрузки парциальной ширины с дополнением
нулями в регистре назначения можно использовать для доступа к памяти в качестве
32-разрядного адреса памяти с дополнением нулями с помощью 64-разрядного
процессора, который работает иным образом в 64-разрядном режиме обработки. В
45 качестве другого примера, результат загрузки парциальной ширины с дополнением
нулями в регистре назначения можно использовать для доступа к памяти в качестве
64-разрядного (или с другой относительно короткой шириной) адреса памяти с
дополнением нулями с помощью 128-разрядного (или с другой относительно более
Стр.: 16
RU 2 638 641 C2
Стр.: 17
RU 2 638 641 C2
Стр.: 18
RU 2 638 641 C2
Стр.: 19
RU 2 638 641 C2
Стр.: 20
RU 2 638 641 C2
Стр.: 21
RU 2 638 641 C2
Стр.: 22
RU 2 638 641 C2
операции), тогда как другие программы могут использовать другой различный режим
загрузки парциальной ширины, при исполнении этой инструкции загрузки парциальной
ширины (например, тот же самый заданного кода операции). Модуль операционной
системы или другой модуль может осуществлять доступ к метаданным, при
5 переключении между программами и/или при возврате из прерываний для определения
того, какой режим загрузки парциальной ширины для размещения процессор в нем
подходит для программы. Посредством примера в некоторых вариантах осуществления
операционная система может использовать инструкцию для изменения режима при
переключении на программу, которую требует использовать различный режим.
10 Посредством примера в некоторых вариантах осуществления операционная система
может использовать различную инструкцию для считывания текущего режима, чтобы
узнать, должен или нет изменяться режим при переключении программы.
В некоторых вариантах осуществления модуль приложения пользовательского
уровня или другой непривилегированный программный модуль может включать в себя
15 модуль информации об отладчике или другой модуль метаданных для передачи в модуль
отладчика информации о том, какой режим загрузки парциальной ширины желает или
намерен использовать программный модуль. Модуль отладчика может осуществлять
доступ к и проверять этот модуль информации об отладке или другой модуль
метаданных для определения режим загрузки парциальной ширины, который будет
20 использоваться программным обеспечением. Это позволяет модулю отладчика
правильно интерпретировать то, как инструкции будут обрабатываться процессором.
Для простоты описания в данном документе часто описываются два различных
режима и/или значения кода операции. Однако следует понимать, что в других вариантах
осуществления можно использовать три, четыре или более различных режимов и/или
25 значений для заданного кода операции. Посредством примера процессор может иметь
два или более разрядов для указания того, какие из многочисленных таких различных
значений следует использовать для заданного кода операции.
В данном документе особое внимание было обращено на различные интерпретации
инструкций загрузки парциальной ширины. В других вариантах осуществления другой
30 тип инструкции помимо инструкции загрузки парциальной ширины можно
интерпретировать в качестве инструкции загрузки парциальной ширины (например,
инструкцию загрузки парциальной ширины с дополнением нулями) в другом режиме.
Примерные архитектуры ядер, процессоры и архитектуры компьютеров
Ядра процессора можно реализовать различным образом для различных целей и в
35 различных процессорах. Например, реализации таких ядер могут включать в себя: 1)
ядро исполнения инструкций без изменения их очередности общего назначения,
предназначенное для вычислений общего назначения; 2) высокопроизводительное ядро
исполнения инструкций с изменением их очередности общего назначения,
предназначенное для вычислений общего назначения; 3) ядро специального назначения,
40 предназначенное в основном для графики и/или научных вычислений (требующих
высокой производительности). Реализации различных процессоров могут включать в
себя: 1) ЦПУ, включающее в себя одно или более ядер исполнения инструкций с
изменением их очередности общего назначения, предназначенных для вычислений
общего назначения и/или одно или более ядер без изменения очередности исполнения
45 инструкций, предназначенных для вычисления общего назначения; и 2) сопроцессор,
включающий в себя одно или более ядер специального назначения, предназначенных
в основном для графики и/или научных (производственных) вычислений. Такие
различные процессоры приводят к различным архитектурам компьютерных систем,
Стр.: 23
RU 2 638 641 C2
Стр.: 24
RU 2 638 641 C2
Стр.: 25
RU 2 638 641 C2
конвейер для скалярных целых чисел, конвейер для скалярной плавающей точки/
упакованного целого числа плавающей точки/упакованной плавающей точки/
векторного целого числа/векторной плавающей точки и/или конвейер доступа к памяти,
каждый из которых имеет свой собственный блок 856 планировщика, блок файла(ов)
5 физических регистров и/или кластер исполнения - и в случае отдельного конвейера
доступа к памяти реализованы некоторые варианты осуществления, в которых только
кластер исполнения этого конвейера имеет(ют) блок(и) доступа к памяти 864). Следует
также понимать, что в тех случаях, когда используются отдельные конвейеры, один
или более из этих конвейеров может изменять очередность выдачи/исполнения
10 инструкций, а остальные не могут изменять их очередность.
Набор блоков 864 доступа к памяти соединен с блоком 870 памяти, который включает
в себя блок 872 TLB данных, соединенный с блоком 874 кэш-памяти данных,
соединенным с блоком 876 кэш-памяти уровня 2 (L2). В одном примерном варианте
осуществления блоки 864 доступа к памяти могут включать в себя блок загрузки, блок
15 адреса хранения и блок данных хранения, каждый из которых соединен с блоком 872
TLB данных в блоке 870 памяти. Блок 834 кэш-памяти инструкций дополнительно
соединен с блоком 876 кэш-памяти уровня 2 (L2) в блоке 870 памяти. Блок 876 кэш-
памяти L2 соединен с одним или более другими уровнями кэш-памяти и, в конечном
счете, с основной памятью.
20 Посредством примера, при примерном переименовании регистра архитектура ядра
выдачи/исполнения инструкций с изменением их очередности позволяет реализовать
конвейер 800 следующим образом: 1) блок 838 выборки инструкций выполняет этапы
802 и 804 выборки и декодирования длины; 2) блок 840 декодирования выполняет этап
806 декодирования; 3) блок 852 переименования/выделения выполняет этап 808
25 выделения и этап 810 переименования; 4) блок(и) 856 планировщика выполняет этап
812 планирования; 5) блок(и) 858 файла(ов) физических регистров и блок 870 памяти
выполняет этап 814 считывания регистра/считывания памяти; кластер 860 исполнения
выполняет этап 816 исполнения; 6) блок 870 памяти и блок(и) 858 файла(ов) физических
регистров выполняет этап 818 перезаписи/записи в память; 7) различные блоки могут
30 быть включены в этап 822 обработки исполнения; и 8) блок 854 завершения и блок(и)
858 файла(ов) физических регистров выполняет(ют) этап 824 фиксации изменений.
Ядро 890 позволяет поддерживать один или более наборов инструкций (например,
набор инструкций х86 (с некоторыми расширениями, которые были добавлены с
помощью более новых версий); набор инструкций MIPS от MIPS Technologies of Sunnyvale,
35 CA; набор инструкций ARM (с опциональными дополнительными расширениями,
такими как NEON) от ARM Holdings of Sunnyvale, CA), включая в себя инструкцию(и),
описанную(ые) в данном документе. В одном варианте осуществления ядро 890
включают в себя логику для поддержки расширения набора инструкций для упакованных
данных (например, AVX1, AVX2), тем самым позволяя выполнять операции, которые
40 используются многими мультимедийными приложениями, с использованием
упакованных данных.
Следует понимать, что ядро может поддерживать многопоточность (исполняя два
или более параллельных наборов операций или потоков), и ее можно выполнить
множеством способов, включающих в себя многопоточность с квантованием по времени,
45 одновременную многопоточность (где одно физическое ядро предусматривает
логическое ядро для каждого из потоков, причем физическое ядро одновременно
выполняет многопоточную данных) или их комбинации (например, выборку с
квантованием по времени, и декодирование и одновременную многопоточную обработку
Стр.: 26
RU 2 638 641 C2
Стр.: 27
RU 2 638 641 C2
Стр.: 28
RU 2 638 641 C2
Стр.: 29
RU 2 638 641 C2
Стр.: 30
RU 2 638 641 C2
Стр.: 31
RU 2 638 641 C2
только память 1232, 1234 соединена с CL 1272, 1282, но также, что устройства 1314 I/O
также соединены с управляющей логической схемой 1272,1282. Унаследованные
устройства I/O 1315 подсоединяются к набору 1290 микросхем.
Обратимся теперь к фиг. 14, на которой показана блок-схема SoC 1400 в соответствии
5 с вариантом осуществления настоящего изобретения. Аналогичные элементы,
показанные на фиг. 10, обозначены одинаковыми ссылочными позициями. Кроме того,
прямоугольники, показанные пунктирными линиями, имеют дополнительные признаки
на более продвинутых SoC. На фиг. 14 блок(и) 1402 межсоединений подсоединен к:
процессору 1410 приложений, который включает в себя набор из одного или более ядер
10 202A-N, и блок(и) 1006 совместно используемой кэш-памяти; блоку 1010 системного
агента; блоку(ам) 1016 контроллера шины; блоку(ам) 1014 контроллера со встроенной
памятью; набору или одному или более сопроцессорам 1420, которые могут включать
в себя встроенную графическую логическую схему, процессор для обработки
изображений, процессор дли обработки аудио и видеопроцессор; блоку 1430
15 статического оперативного запоминающего устройства (SRAM); блоку 1432 прямого
доступа к памяти (DMA); и блоку 1440 отображения для подсоединения к одному или
более внешним дисплеям. В одном варианте осуществления сопроцессор(ы) 1420
включает в себя процессор специального назначения, такой, например, как сетевой или
связной процессор, механизм сжатия, GPGPU, высокопроизводительный процессор
20 MIC, встроенный процессор и т.п.
Варианты механизмов, раскрытые в данном документе, можно реализовать в виде
аппаратных средств, программного обеспечения, программно-аппаратных средств
или комбинации таких методов реализации. Варианты осуществления изобретения
можно реализовать в виде компьютерных программ или программного кода,
25 исполняемого на программируемых системах, содержащих по меньшей мере один
процессор, систему памяти (включающей в себя энергозависимую и энергонезависимую
память и/или элементы памяти), по меньшей мере одно устройство ввода и по меньшей
мере одно устройство вывода.
Код программы, такой как код 1230, иллюстрированный на фиг. 12, можно применить
30 к входным инструкциям для того, чтобы выполнить функции, описанные в данном
документе и выработать выходную информацию. Выходную информацию можно
применить известным способом к одному или более устройствам вывода. В целях этого
приложения, система обработки включает в себя любую систему, которая имеет
процессор, такой, например, как процессор цифровых сигналов (DSP), микроконтроллер,
35 специализированная интегральная схема (ASIC) или микропроцессор.
Код программы можно реализовать в виде процедурного языка высокого уровня
или объектно-ориентированного языка программирования для поддержания связи с
системой обработки данных. При желании код программы можно также реализовать
в виде ассемблера или машинного языка. Фактически, механизмы, описанные в данном
40 документе, не ограничиваются объемом для любого конкретного языка
программирования. В любом случае язык может представлять собой компилированный
или интерпретируемый язык.
Один или более аспектов по меньшей мере одного варианта осуществления можно
реализовать с помощью репрезентативных инструкций, хранящихся на машиночитаемом
45 носителе информации, который представляют собой различную логику внутри
процессора, которые при их считывании машиной побуждает машину производить
логические операции для выполнения технологий, описанных в данном документе.
Такие представления, известные как "IP ядра", можно хранить на материальном,
Стр.: 32
RU 2 638 641 C2
Стр.: 33
RU 2 638 641 C2
или иным образом обработки (1) существенная части набора инструкций ядра с набором
инструкций x86 Intel или (2) версии объектного кода приложений или другого
программного обеспечения, предназначенного для выполнения в процессоре Intel с по
меньшей мере одним ядром с набором инструкций x86 для того, чтобы достичь по
5 существу такого же результата, как и в процессоре Intel с по меньшей мере одним ядром
с набором инструкций x86. Компилятор 1504 x86 представляет собой компилятор,
который выполнен с возможностью выработки двоичного кода 1506 x86 (например,
объектного кода), который можно, с или без дополнительной обработки связей,
исполнить на процессоре с по меньшей мере одним ядром 1516 с набором инструкций
10 x86. Аналогичным образом, на фиг. 15 показана программа на языке 1502 высоко
уровня, который можно скомпилировать, используя компилятор 1508 с альтернативным
набором инструкций, для выработки двоичного кода 1510 для альтернативного набора
инструкций, который можно исполнить в собственной системе инструкций процессором
без по меньшей мере одного ядра 1514 с набора инструкций x86 (например, процессор
15 с ядрами, которые исполняют набор инструкций MIPS согласно технологиям MIPS
Technologies of Sunnyvale, CA, и/или которые исполняют набор инструкций ARM согласно
технологиям ARM Holdings of Sunnyvale, СА). Конвертер 1512 инструкций используется
для преобразования двоичного кода 1506 x86 в код, который можно исполнить в
собственной системе инструкций с помощью процессора без ядра 1514 с набором
20 инструкций x86. Маловероятно, что этот преобразованный код будет таким же, как и
двоичный код 1510 с альтернативным набором инструкций, так как трудно сделать
конвертер инструкций, который может выполнять это; однако преобразованный код
будет выполнять общую операцию и будет состоять из инструкций из альтернативного
набора инструкций. Таким образом, конвертер 1512 инструкций представляет собой
25 программное обеспечение, программно-аппаратные средства, аппаратные средства
или их комбинации, которые, посредством эмуляции, моделирования или любого другого
процесса, позволяют процессору, или другому электронному устройству, которое не
имеет процессора или ядра с набором инструкций х86, исполнять двоичный код 1506
x86.
30 Компоненты, признаки и детали, описанные для любой из фиг. 2-3 и 5, можно также
опционально использовать на любой из фиг. 1 и 4. Более того, компоненты, признаки
и детали, описанные в данном документе для любого устройства, можно также
опционально использовать в любых способах, описанных в данном документе, которые
в вариантах осуществления можно выполнить посредством или с помощью такого
35 устройства.
В данном описании и формуле изобретения можно использовать термины
"соединенный" и "связанный", наряду с их производными. Следует понимать, что эти
термины не предназначены для использования в качестве синонимов друг для друга.
Скорее всего, в конкретных вариантах осуществления термин "связанный" можно
40 использовать для того, чтобы показать, что два или более элементов находятся в
непосредственном физическом или электрическом контакте друг с другом. Термин
"соединенный" может означать, что два или более элементов находятся в прямом
физическом или электрическом контакте. Однако термин "соединенный" может означать,
что один или более элементов не находятся в прямом контакте друг с другом, но еще
45 действуют совместно или взаимодействуют друг с другом. Например, подсистема
памяти может быть соединена с декодером через один или более промежуточных блоков
или логических схем, или блок записи в регистр может быть соединен с регистром через
один или более промежуточных блоков или логических схем. На фигурах
Стр.: 34
RU 2 638 641 C2
Стр.: 35
RU 2 638 641 C2
логические схемы, интегральные схемы и т.п. Еще одни примеры подходящих машин
включают в себя вычислительные устройства и другие электронные устройства, которые
входят в состав таких процессоров, устройств обработки инструкций, цифровых
логических схем или интегральных схем. Примеры таких вычислительных устройств и
5 электронных устройств включают в себя, но не ограничиваются ими, настольные
компьютеры, портативные компьютеры, компьютеры типа "ноутбук", планшетные
компьютеры, нетбуки, смартфоны, сотовые телефоны, серверы, сетевые устройства
(например, маршрутизаторы и коммутаторы), мобильные интернет-устройства (MID),
медиапроигрыватели, интеллектуальные телевизоры, неттопы, телевизионные приставки
10 и контроллеры видеоигры.
В некоторых вариантах осуществления машиночитаемый носитель информации
может включать в себя материальный и/или невременный машиночитаемый носитель
информации. Например, материальный и/или невременный машиночитаемый носитель
информации может включать в себя гибкую дискету, оптический носитель информации,
15 оптический диск, оптическое устройство хранения данных, CD-ROM, магнитный диск,
магнитооптический диск, постоянное запоминающее устройство (ROM),
программируемое ROM (PROM), стираемый и программируемый ROM (EPROM),
электрически стираемый и программируемый ROM (EEPROM), оперативное
запоминающее устройство (RAM), статическое RAM (SRAM), динамическое RAM
20 (DRAM), флеш-память, память с изменением фазового состояния с изменением фазового
состояния, энергонезависимую память, энергонезависимое устройство для хранения
данных, невременную память, устройство для невременного хранения данных или т.п.
Невременный машиночитаемый носитель информации не состоит только из временного
распространяемого сигнала.
25 Следует также принимать во внимание, что ссылка на всем протяжении этого
описания на "один вариант осуществления", "вариант осуществления" или "один или
более вариантов осуществления", например, означает, что конкретный признак может
быть включен при практическом осуществлении изобретения. Аналогичным образом,
следует принимать во внимание, что в описании различные признаки иногда
30 сгруппированы вместе в одном варианте осуществления, фигуре или их описании с
целью улучшения раскрытия и облегчения понимания различных изобретательских
аспектов. Однако данный способ раскрытия не следует интерпретировать в качестве
отражения изобретения, что изобретение требует больше признаков, чем те, которые
явным образом изложены в каждом пункте формулы изобретения. Скорее, как отражает
35 последующая формула изобретения, аспекты изобретения могут находиться менее чем
во всех признаках единственного раскрытого варианта осуществления. Таким образом,
формула изобретения, следующая за подробным описанием изобретения, тем самым
включена в это подробное описание изобретения, причем каждый пункт формулы
изобретения действует сам по себе как отдельный вариант осуществления изобретения.
40 Примерные варианты осуществления
Следующие примеры относятся к дополнительным вариантам осуществления.
Специфические особенности примеров можно использовать везде в одном или более
вариантах осуществления.
Пример 1 представляет собой процессор, включающий в себя регистр, имеющий
45 ширину, и блок декодирования для приема инструкции загрузки парциальной ширины.
Инструкция загрузки парциальной ширины указывает ячейку памяти в качестве операнда
источника и указывает регистр в качестве операнда назначения. Процессор также
включает в себя подсистему памяти, соединенную с блоком декодирования. Подсистема
Стр.: 36
RU 2 638 641 C2
Стр.: 37
RU 2 638 641 C2
Стр.: 38
RU 2 638 641 C2
Стр.: 39
RU 2 638 641 C2
Стр.: 40
RU 2 638 641 C2
Стр.: 41
RU 2 638 641 C2
Стр.: 42
RU 2 638 641 C2
приложения.
18. Способ по п. 13, в котором запись парциальной ширины регистра содержит запись
только подмножества ширины регистра и в котором регистр по меньшей мере является
таким широким, как адреса памяти, используемые процессором для доступа к памяти.
5 19. Способ по п. 18, в котором запись парциальной ширины регистра содержит одно
из:
записи 32 разрядов регистра с нулями в оставшейся части регистра, и где адреса
памяти, используемые процессором для получения доступа к памяти, имеют 64 разряда;
и
10 записи 64 разрядов регистра с нулями в оставшейся части регистра, и где адреса
памяти, используемые процессором для получения доступа к памяти, имеют 128
разрядов.
20. Способ по п. 13, дополнительно содержащий:
прием сигнала управления из приложения пользовательского уровня для изменения
15 режима загрузки парциальной ширины и
изменение режима загрузки парциальной ширины после приема сигнала управления.
21. Способ по п. 13, дополнительно содержащий:
прием сигнала управления из одного из операционной системы и монитора
виртуальных машин для изменения режима загрузки парциальной ширины;
20 изменение режима загрузки парциальной ширины после приема сигнала управления
из упомянутого одного из операционной системы и монитора виртуальных машин; и
предотвращение приложений пользовательского уровня от изменения режима
загрузки парциальной ширины.
22. Постоянный машиночитаемый носитель информации, хранящий набор инструкций,
25 которые при их исполнении машиной предписывают машине выполнять следующие
операции способа загрузки данных:
проверку метаданных программного модуля, включающую проверку указания
режима загрузки парциальной ширины процессора, который будет использоваться
процессором для выполнения инструкции загрузки парциальной ширины, причем
30 инструкция загрузки парциальной ширины указывает ячейку памяти в качестве операнда
источника и указывает регистр в качестве операнда назначения; и
изменение режима загрузки парциальной ширины процессора на указанный режим
загрузки парциальной ширины, причем изменение режима загрузки парциальной ширины
должно управлять изменением значений разрядов, которые будут сохраняться
35 процессором в части указанного регистра, который не будет использоваться для
хранения парциальной ширины данных, загруженных из памяти.
23. Постоянный машиночитаемый носитель информации по п. 22, в котором набор
инструкций дополнительно содержит инструкции, которые при их исполнении машиной
предписывают машине выполнять операции, содержащие:
40 поддержание метаданных, показывающих какие различные программные модули
должны использовать какие различные режимы загрузки парциальной ширины, включая
то, что программный модуль должен использовать режим загрузки парциальной
ширины; и
после обработки прерывания изменение режима загрузки парциальной ширины
45 процессора на указанный режим загрузки парциальной ширины совместно с переходом
обратно к исполнению кода из программного модуля.
24. Система для загрузки данных, содержащая:
межсоединение;
Стр.: 43
RU 2 638 641 C2
25
30
35
40
45
Стр.: 44
RU 2 638 641 C2
Стр.: 45
RU 2 638 641 C2
Стр.: 46
RU 2 638 641 C2
Стр.: 47
RU 2 638 641 C2
Стр.: 48
RU 2 638 641 C2
Стр.: 49
RU 2 638 641 C2
Стр.: 50
RU 2 638 641 C2
Стр.: 51
RU 2 638 641 C2
Стр.: 52
RU 2 638 641 C2
10
Стр.: 53
RU 2 638 641 C2
11
Стр.: 54
RU 2 638 641 C2
12
Стр.: 55
RU 2 638 641 C2
13
Стр.: 56
RU 2 638 641 C2
14
Стр.: 57
RU 2 638 641 C2
15
Стр.: 58
RU 2 638 641 C2
Стр.: 59