Эффективный механизм сохранения адреса возврата из прерывания

Изобретение относится к области вычислительной техники, а именно к конвейерному обрабатывающему устройству, которое обновляет массив регистров для эффективного сохранения адреса возврата из прерывания. Техническим результатом является эффективное сохранение адреса возврата из прерывания в массив регистра общего назначения. Устройство для генерирования псевдокоманды содержит конвейерное обрабатывающее устройство, которое включает в себя массив регистров общего назначения и устройство генерирования псевдокоманд, при этом конвейер содержит каскад декодирования, выполненный с возможностью декодирования псевдокоманды, и каскад отложенной записи, выполненный с возможностью записи результатов. Способ и система описывают работу данного устройства. 4 н. и 18 з.п. ф-лы, 3 ил.

 

Область техники, к которой относится изобретение

Настоящее раскрытие в целом имеет отношение к обрабатывающим устройствам, а конкретнее, к конвейерному обрабатывающему устройству, которое обновляет массив регистров для эффективного сохранения адреса возврата из прерывания.

Уровень техники

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

В конвейерной архитектуре отдельный командный цикл может включать в себя пять каскадов. Эти каскады могут быть описаны последовательно следующим образом: (1) выборка; (2) декодирование; (3) доступ к массиву регистров; (4) исполнение; и (5) запись в массив регистров. При конвейерной обработке процесс обработки на каждом из этих каскадов исполняется параллельно, чтобы достичь высокоскоростной обработки. Конвейерная обработка может использоваться для повышения быстродействия обрабатывающего устройства за счет увеличения числа команд, выполняемых за период времени.

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

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

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

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

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

Раскрытие изобретения

Настоящее раскрытие предоставляет систему, устройство и способ для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения. Настоящее раскрытие предоставляет механизм для сохранения значения программного счетчика или адреса возврата из прерывания для команды, которая еще не вышла из конвейера при возникновении прерывания. Программная команда, которая больше всего продвинулась по конвейеру, когда произошло прерывание, но притом не была полностью обработана, иногда упоминается в настоящем описании как наиболее продвинувшаяся команда в конвейере.

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

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

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

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

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

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

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

Краткое описание чертежей

Фиг.1 является иллюстрацией структурной схемы модели управления и данных конвейерного обрабатывающего устройства в соответствии с одним вариантом осуществления настоящего раскрытия.

Фиг.2 является таблицей, которая иллюстрирует обработку прерывания на различных конвейерных каскадах в зависимости от тактового цикла в соответствии с одним вариантом осуществления настоящего раскрытия.

Фиг.3 является блок-схемой, которая иллюстрирует способ для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения в соответствии с одним вариантом осуществления настоящего раскрытия.

Осуществление изобретения

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

При получении обрабатывающим устройством системы сигнала запроса на прерывание обрабатывающим устройством генерируется псевдокоманда. Эта псевдокоманда обрабатывается подобно другим командам. Она продвигается по конвейеру и обновляет массив регистров, принуждая массив регистров быть записанным с адресом возврата. Поскольку эта псевдокоманда продвигается по конвейеру подобно обычным командам, она обновляет не только массив регистров, но и связанные ресурсы. Для сохранения адреса возврата из прерывания не требуется никакого выделенного аппаратного обеспечения, которое должно быть связано с массивом регистров. Система, устройство и способ, описываемые в данном документе, могут быть реализованы с использованием регистров общего назначения и, соответственно, отсутствует потребность в выделенных портах для массива регистров.

Теперь обратимся к Фиг.1, проиллюстрирована модель 100 конвейерного устройства обработки данных в соответствии с одним вариантом осуществления настоящего раскрытия. Для иллюстрации в настоящем описании представляется модель пятикаскадного конвейера. Пять каскадов могут быть описаны следующим образом: (1) выборка; (2) декодирование; (3) доступ к массиву регистров; (4) исполнение; и (5) запись в массив регистров. Несколько каскадов модели 100 обрабатывающего устройства могут включать в себя регистры общего назначения. Разумеется, эти регистры общего назначения могут содержать в себе ячейку памяти, где сохраняются данные, в противоположность фактическим данным. Специальные регистры отсутствуют и не требуются.

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

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

Как показано на Фиг.1, модуль 110 управления обрабатывающего устройства управляет общей работой в конвейерном режиме и ходом процесса обработки прерываний. Каскад 120 выборки может отвечать за выборку команд. Обычные команды могут выбираться из различных мест, в том числе из встроенной кэш памяти или из внешней памяти, которая координируется блоком управления памятью.

Устройство 117 генерирования псевдокоманды может быть логической схемой управления, которая может быть резидентной частью модуля 110 управления. Устройство 117 генерирования псевдокоманды выполняется с возможностью генерирования псевдокоманды, которая формируется с возможностью принуждения адреса возврата быть записанным в массив регистров общего назначения. Псевдокоманды можно, как правило, отличить от обычных команд по способу, которым они подаются на вход конвейера. Более того, псевдокоманда, как правило, выполняет особую функцию, так как она предназначена для принуждения адреса возврата из прерывания быть записанным в массив регистров. Однако как только псевдокоманда была подана на вход конвейера, она продвигается по конвейеру точно так же, как обычные команды, которые были выбраны из памяти или по-другому. Целесообразность псевдокоманды будет описана более подробно ниже в данном документе. Устройство 115 уплотнения может располагаться между каскадом 120 выборки и каскадом 130 декодирования. Устройство 115 уплотнения может определять входные данные для каскада 130 декодирования, или как команду на каскаде 120 выборки, или как псевдокоманду, которая была сгенерирована устройством 117 генерирования псевдокоманды в модуле 110 управления. Устройство 115 уплотнения может выбрать требуемые входные данные для каскада декодирования посредством шины 119 выборки.

Каскад 130 декодирования способен принимать и декодировать команду, выбранную на каскаде 120 выборки или, с другой стороны, принимать и декодировать псевдокоманду, которая была сгенерирована на устройстве 117 генерирования псевдокоманды модуля 110 управления. Предположим, что обработка прерывания не запрашивается, тогда каждая команда в общем случае будет попадать на каскад 130 декодирования от каскада 120 выборки в заданной последовательности или, например, в порядке, определяемом исполняемой компьютерной программой.

Декодирование данных потребует определить адрес следующей команды. Адрес может находиться, например, в буферном регистре как ближайшая последующая команда. В некоторых случаях может потребоваться выборка адреса из памяти или кэш памяти, например, если текущая команда является условным переходом. Каскад декодирования является первым конвейерным каскадом, на котором команды могут быть декодированы, чтобы определить, где оканчивается команда.

Проблемы могут встретиться при обслуживании прерываний. Эти проблемы могут быть связаны с принуждением адреса возврата быть записанным в массив регистров.

Настоящее раскрытие использует преимущества того, что массив регистров находится под прямым управлением конвейера. Архитектура процессора настоящего раскрытия использует массив регистров для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения.

Когда сигнал 118 запроса на прерывание принимается на модуле 110 управления, модуль 110 управления принимает решение, выполнять ли прерывание обслуживания посредством шины 119 выборки. Если принимается решение, что прерывание обслуживания должно быть выполнено, устройство 117 генерирования псевдокоманды генерирует псевдокоманду по тракту 113, подавая на вход устройства 115 уплотнения. Она называется "псевдокомандой", потому что в действительности она не присутствует в исполняемой программе. Псевдокоманда формируется с возможностью принуждения адреса возврата из прерывания быть записанным в массив регистров общего назначения. Этот адрес возврата из прерывания был подан на вход устройства 117 генерирования псевдокоманды модуля 110 управления.

Устройство 117 генерирования псевдокоманды включает в себя логическую схему управления, содержащую, например, различные вентильные схемы и транзисторы. Эта псевдокоманда предназначается для записи адреса возврата в массив регистров. Адрес возврата или значение программного счетчика должен идентифицировать размещение наиболее продвинувшейся команды, обработка которой была бы завершена на следующем шаге, если бы не произошло прерывание. Соответственно, адрес возврата должен принадлежать этой наиболее продвинувшейся командой. Как должно быть известно специалистам в данной области техники, микроархитектура обрабатывающего устройства включает в себя логическую схему управления в модуле 110 управления для того, чтобы отслеживать адреса команд по конвейеру. Эта логическая схема управления способна определять адрес возврата команды исходя из отслеженных адресов в конвейере. Затем адрес возврата команды подается на устройство 115 уплотнения, снабжающее конвейерный каскад 130 декодирования, как часть псевдокоманды.

Нужно понимать, что устройство 115 уплотнения и/или устройство 117 генерирования псевдокоманды могут быть вставлены в конвейер на стадии, отличной от входа каскада 130 декодирования. Однако также нужно понимать, что может быть желательным вставлять псевдокоманду на достаточно ранней стадии в конвейере, чтобы функции администрирования массива регистров могли использовать стандартные или типичные тракты управления и данных. Функции администрирования массива регистров могут включать в себя обнаружение сбоев, декодирование адреса и средства управления чтением/записью. Таким образом, можно отказаться от специальных функций, как и от выделенных портов для массива регистров.

После каскада 130 декодирования псевдокоманда (или другая команда, если псевдокоманда в настоящее время не подается на вход) может перейти на каскад 135 доступа к массиву регистров. Модуль 110 управления обрабатывающего устройства может обращаться к массиву регистров по ряду причин. Например, если на каскаде 130 была декодирована команда "добавление", то к массиву регистров может быть получен доступ для того, чтобы считать исходные операнды для добавления. Множество регистров общего назначения входят в состав каскада 135 доступа к массиву регистров. Выходные данные этих регистров общего назначения могут использоваться в более поздних тактовых циклах.

После обращения к массиву регистров на каскаде 135 команды могут быть приняты на каскаде 140 исполнения команд. Затем команды могут быть исполнены. Множество регистров общего назначения может быть включено в состав каскада 140 исполнения команд. Выходные данные этих регистров общего назначения могут передаваться на каскад 145 отложенной записи. На каскаде 145 отложенной записи обрабатывающее устройство 100 осуществляет отложенную запись результатов в массив 180 регистров.

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

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

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

В иллюстративных целях на Фиг.2 предполагается, что обработка прерывания запрашивается внешним устройством между восьмым и девятым тактовыми циклами. Команды обозначаются "I" для команды с последующим номером команды. В иллюстративных целях дополнительно предполагается, что команда #8 находится на каскаде выборки при поступлении запроса на обработку прерывания. Конечно, нужно понимать, что обработка прерывания может потребоваться при любом номере команды.

На этой иллюстрации управление прерываниями требует, чтобы обрабатывающее устройство переходило к команде #100. В этом примере команда #100 может находиться там, где могут быть найдены команды, связанные с обработкой прерывания. Конечно, обработка прерывания могла бы произойти при любой команде, определяемой программой.

После того как команда #100 была выбрана для управления обработки прерывания, все не полностью обработанные команды будут исключены. На этой иллюстрации команды #5-#8 могут быть исключены, поскольку обработка в последовательном порядке (или в порядке, определяемом программой во время обычной работы) была прервана.

Наиболее продвинувшейся командой, для которой обработка не завершена, является команда #5. В момент прерывания команда #5 находится на каскаде исполнения. Эта команда, будучи наиболее ранней не полностью обработанной командой, должна все же покинуть конвейер. Соответственно, должно быть понятно, что программным значением, по которому обрабатывающее устройство должно возобновить исполнение программы, является команда #5. В соответствии с настоящим раскрытием псевдокоманда формируется, чтобы записать адрес возврата как наиболее продвинувшуюся команду. Ею является самая ранняя команда, которая не подверглась полной обработке, но больше всего продвинулась по конвейеру к моменту запроса на прерывание. Эта псевдокоманда продвигается по конвейеру так же, как это делают все другие команды.

В цикле двенадцать на Фиг.2 псевдокоманда записывает адрес наиболее продвинувшейся команды в массив регистров. Когда позднее обработка прерывания завершается, обрабатывающее устройство возвращается к исполнению программы на команде #5, используя значение, которое было сохранено в массиве регистров.

Обратимся теперь к Фиг.3, проиллюстрирован способ 300 для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения. На этапе 310 принимается запрос на прерывание. Запрос на прерывание может быть от внешнего устройства, или от программы, которая исполняется на момент запроса, или запрос на прерывание производится как-то иначе.

На этапе 320 генерируется псевдокоманда. Псевдокоманда может генерироваться логической схемой управления в модуле управления обрабатывающего устройства. Псевдокоманда также может генерироваться любым другим средством. Псевдокоманда формируется для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения. Адрес возврата из прерывания известен, так как он был подан на вход модуля управления. Псевдокоманда продвигается по конвейеру точно так же, как и другие команды.

На этапе 330 программное значение для следующей необработанной команды записывается в массив регистров общего назначения (РОН). Массив регистров и связанные ресурсы обновляются обычным способом. Для проведения этого процесса требуются только регистры общего назначения. Не требуются выделенные порты для массива регистров, таким образом сберегается область памяти на обрабатывающем устройстве, и устраняются сложности, связанные с выделенными портами или специальными регистрами.

На этапе 340, обрабатывающее устройство возобновляет обработку по значению программного счетчика, которое было записано в массив регистров общего назначения. После этого обрабатывающее устройство может исполнять команды в порядке, который предписывается исполняемой программой.

Различные иллюстративные логические блоки, модули и схемы, описанные применительно к вариантам осуществления, раскрытым в настоящем описании, могут быть реализованы или выполнены с использованием обрабатывающего устройства общего назначения, цифрового сигнального процессора (ЦСП), специализированной интегральной схемы (СИС), программируемой вентильной матрицы (ПВМ) или другого программируемого логического устройства, логического элемента на дискретных компонентах или транзисторных логических схем, отдельных аппаратных компонентов, или любой их комбинации, предназначенных для выполнения функций, изложенных в настоящем описании. Обрабатывающее устройство общего назначения может быть микропроцессором, а как вариант, обрабатывающее устройство может быть любым традиционным обрабатывающим устройством, управляющим устройством, микропроцессорным управляющим устройством или конечным автоматом. Кроме того, обрабатывающее устройство может быть реализовано в виде комбинации вычислительных устройств, например как комбинация ЦСП и микропроцессора, множество микропроцессоров один или более микропроцессоров в сочетании с ЦСП в качестве ядра, или любая другая подобная конфигурация.

Способы или алгоритмы, описанные применительно к вариантам осуществления, раскрытым в настоящем описании, могут быть воплощены непосредственно в аппаратном обеспечении, в программном модуле, исполняемом обрабатывающим устройством, или в комбинации этих двух компонентов. Программный модуль может постоянно храниться в памяти ОЗУ, памяти ЭППЗУ, памяти ПЗУ, памяти СППЗУ, памяти ЭСППЗУ, в регистрах, на жестком диске, съемном диске, компактном оптическом диске, или любой другой форме носителя данных, известного в данной области техники. Носитель данных может соединяться с обрабатывающим устройством, причем это обрабатывающее устройство может считывать информацию с этого носителя данных и записывать на него информацию. Как вариант, носитель данных может быть встроен в обрабатывающее устройство. Обрабатывающее устройство и носитель данных могут постоянно размещаться в СИС. СИС может размещаться в терминале или где-либо еще. Как вариант, обрабатывающее устройство и носитель данных могут размещаться в форме отдельных компонентов в терминале или где-либо еще.

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

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

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

3. Система обработки данных по п.2, которая дополнительно содержит: каскад выборки, выполненный с возможностью выбора команд; и при этом устройство уплотнения дополнительно выполнено с возможностью приема команд от каскада выборки и псевдокоманды, причем устройство уплотнения дополнительно выполнено с возможностью выбора одной из выбранной команды и псевдокоманды для подачи на вход каскада декодирования.

4. Система обработки данных по п.1, которая дополнительно содержит: множество регистров общего назначения.

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

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

7. Устройство для генерирования псевдокоманды, при этом устройство содержит: конвейерное обрабатывающее устройство, имеющее массив регистров общего назначения и устройство генерирования псевдокоманд, выполненное с возможностью генерирования псевдокоманды в ответ на запрос на прерывание, причем псевдокоманда формируется с возможностью принуждения адреса возврата из прерывания быть записанным в массив регистров общего назначения, при этом адрес возврата из прерывания связан с командой, которая больше всего продвинулась и не была полностью обработана в конвейере; и при этом псевдокоманда дополнительно формируется с возможностью включения в конвейер конвейерного обрабатывающего устройства и прохождения по конвейеру аналогично другим командам, которые включены в конвейер; при этом конвейер содержит: каскад декодирования, выполненный с возможностью декодирования псевдокоманды, и каскад отложенной записи, выполненный с возможностью записи результатов, связанных с псевдокомандой, в массив регистров общего назначения, причем эти результаты включают в себя адрес возврата из прерывания.

8. Устройство по п.7, в котором псевдокоманда подается на вход каскада декодирования.

9. Устройство по п.8, которое дополнительно содержит: устройство уплотнения, выполненное с возможностью приема псевдокоманды и подачи псевдокоманды на вход каскада декодирования.

10. Устройство по п.9, которое дополнительно содержит: каскад выборки, выполненный с возможностью выбора команд; и при этом устройство уплотнения дополнительно выполнено с возможностью приема команд от каскада выборки и псевдокоманды, и выбора одной из выбранной команды и псевдокоманды для подачи на вход каскада декодирования.

11. Устройство по п.9, в котором упомянутое обрабатывающее устройство дополнительно выполнено с возможностью выполнения обработки прерывания в ответ на запрос на прерывание; и записи адреса возврата из прерывания для самой новой не полностью обработанной команды в массив регистров общего назначения.

12. Устройство по п.11, в котором упомянутое обрабатывающее устройство дополнительно выполнено с возможностью возобновления обработки по адресу возврата из прерывания, который был записан в массив регистров общего назначения.

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

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

15. Способ по п.14, который дополнительно содержит этап, на котором: возобновляют обработку по адресу возврата из прерывания, который был записан в массив регистров общего назначения.

16. Способ по п.13, в котором псевдокоманду генерируют посредством логической схемы управления в конвейерном обрабатывающем устройстве.

17. Способ по п.13, в котором псевдокоманду подают на вход каскада декодирования.

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

19. Способ по п.18, в котором конвейерное обрабатывающее устройство дополнительно содержит: каскад выборки, выполненный с возможностью выбора команд; и при этом устройство уплотнения дополнительно выполнено с возможностью приема как команд от каскада выборки, так и псевдокоманды; и выбора одной из выбранной команды и псевдокоманды для подачи на вход каскада декодирования.

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

21. Устройство для генерирования псевдокоманды, при этом устройство содержит: многокаскадное конвейерное обрабатывающее устройство, выполненное с возможностью выполнения обработки прерываний, причем упомянутое обрабатывающее устройство включает в себя конвейер, при этом конвейер включает в себя: первый каскад, выполненный с возможностью приема команд, и второй каскад, выполненный с возможностью отложенной записи результатов в массив регистров общего назначения; и выполнения обработки данных команд из программы; логическую схему управления, выполненную с возможностью генерирования псевдокоманды в ответ на запрос на прерывание, причем псевдокоманда формируется с возможностью принуждения адреса возврата из прерывания быть записанным в массив регистров общего назначения, при этом адрес возврата из прерывания связан с командой, которая больше всего продвинулась и не была полностью обработана в конвейере, и при этом псевдокоманда дополнительно формируется с возможностью включения в конвейер многокаскадного конвейерного обрабатывающего устройства и прохождения по конвейеру аналогично другим командам, которые включены в конвейер; при этом конвейер дополнительно включает в себя: каскад декодирования, выполненный с возможностью декодирования псевдокоманды, и каскад отложенной записи, выполненный с возможностью записи результатов, связанных с псевдокомандой, в массив регистров общего назначения, причем эти результаты включают в себя адрес возврата из прерывания; и устройство уплотнения, выполненное с возможностью приема как псевдокоманды от логической схемы управления, так и данных команд из программы, и подачи псевдокоманды или данных команд на вход первого каскада; при этом многокаскадное конвейерное обрабатывающее устройство дополнительно выполнено с возможностью возобновления, после обработки прерывания, обработки данных команд по адресу возврата из прерывания.

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



 

Похожие патенты:

Изобретение относится к области управления памятью, а более конкретно к очистке кэш-буфера преобразования адресов. .

Изобретение относится к системам и способам обнаружения потери значимости при выполнении избранных операций процессора. .

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

Изобретение относится к вычислительной технике и может быть использовано для адресации матриц. .

Изобретение относится к области онлайновых приложений социальных сетей. Технический результат заключается в возможности представления пользователю одновременно с контентом просматриваемой страницы сообщений социальной сети, имеющих к нему отношение, снижении затрат времени, связанных с просмотром таких сообщений. Технический результат достигается за счет извлечения, по меньшей мере, одного объекта из произвольной веб-страницы, просматриваемой пользователем на устройстве отображения, причем данный объект представляет собой, по меньшей мере, одно ключевое слово на этой произвольной странице и каноническое смысловое значение этого ключевого слова, и сравнения, по меньшей мере, одного объекта с данными социальной сети пользователя, причем данные социальной сети содержат множество сообщений, сформированных участниками социальной сети пользователя. 3 н. и 17 з.п. ф-лы, 11 ил.
Наверх