Один или несколько аспектов относятся, в целом, к обработке в вычислительном окружении и, прежде всего, к обеспечению такой обработки.
В многопроцессорном вычислительном окружении несколько вычислительных устройств, таких как центральные вычислительные устройства (CPU) или ядра, соединены для совместного использования доступа к общей памяти, такой как общие местоположения общей памяти. Иерархия памяти в конфигурации может включать в себя различные уровни кеша, приватные или локальные для каждого вычислительного устройства, которые различные уровни кеша распределены между несколькими вычислительными устройствами и общей памятью. Когда вычислительное устройство должно обновлять местоположение памяти, строку памяти передают вычислительному устройству посредством иерархии памяти, и строку удерживают исключительным образом на том уровне кеша, который является приватным для выполняющего обновление вычислительного устройства. В то время, когда строка памяти удерживается вычислительным устройством исключительным образом, другим вычислительным устройствам не разрешено обновление или считывание этой строки памяти до тех пор, пока строка не окажется разблокированной и более не удерживаемой вычислительным устройством исключительным образом.
В случае, когда несколько компьютерных процессов совместно используют доступ к области общей памяти, для управления доступом к этой области памяти может быть использован семафор (или блокировка). Семафор обычно является словом или двойным словом в общей памяти, и содержимое семафора задает, какому процессору в пределах конфигурации в настоящее время разрешен доступ к соответствующей области памяти. Когда выполняемый на вычислительном устройстве процесс требует доступа к области памяти, этот процесс обновляет семафор для указания на то, что совместно используемая область используется, выполняет получающие доступ к совместно используемой области задачи, а затем вновь обновляет семафор для указания на прекращение использования совместно используемой области.
Сущность изобретения
Некоторые недостатки известного уровня техники преодолены, и дополнительные преимущества достигаются в предлагаемом машиночитаемом информационном носителе, считываемом вычислительным устройством и хранящем команды для обеспечения обработки в вычислительном окружении, при выполнении которых посредством вычислительного устройства осуществляется способ, включающий выявление того, содержит ли поле элемента управления доступом команды значение удержания, представляющее собой обозначение удержания для запроса операнда памяти последующей команды к местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения. Способ также включает по меньшей мере частичное управление обработкой последующей команды в зависимости от того, содержит ли поле элемента управления доступом команды значение удержания. Указанное управление включает выяснение того, находится ли состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, в исключительном распоряжении вычислительного устройства, и на основании выявления того, что запрос операнда памяти является назначенным к удержанию, и что состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, находится в исключительном распоряжении, продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, причем продолжение удержания включает в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала.
Предпочтительно, обработка в компьютерном окружении усовершенствована путем предоставления для программы средства (или инструмента) для сигнализации вычислительному устройству о том, что конкретный запрос операнда памяти или доступ, соответствующий совместно используемому несколькими вычислительными устройствами вычислительного окружения местоположению памяти, является назначенным к удержанию. На основании идентификации конкретного запроса операнда памяти в качестве удерживаемого, и на основании выявления того, что состояние соответствующей кеш-строки в используемом для обработки запроса операнда памяти приватном кеше находится в исключительном распоряжении, вычислительное устройствопродолжает удержание на протяжении требуемого интервала соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти. Таким образом, вычислительное устройство имеет возможность отклонения от стандартных протоколов управления памятью в целях удержания кеш-строки исключительным образом во всем вычислительном окружении на протяжении более длительного чем обычно времени, таким образом повышая вероятность завершения обрабатываемого в вычислительном устройстве процесса прежде разблокирования кеш-строки. Этим выгодным образом уменьшено число случаев содержания кеш-строкой семафора (или блокировки), способных приводить к непроизводительной затрате ресурсов вычислительного окружения, и таким образом, повышена полная производительность системы.
В одном или нескольких вариантах осуществления инициирование счетчика может включать в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, и прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом после достижения счетчиком заданного интервала. В одном или нескольких вариантах осуществления длина заданного интервала зависит от типа доступа запроса операнда памяти, где тип доступа может быть представлен одним из следующих типов доступа: тип выборки, тип сохранения или тип обновления. В конкретных вариантах осуществления длина заданного интервала может быть большей для доступов типа сохранения и типа обновления, чем для доступа типа выборки.
В одном или нескольких вариантах осуществления заданный интервал может быть выбран из группы, состоящей из основанного на времени интервала и основанного на циклах интервала. Кроме того, в одном или нескольких вариантах осуществления способ может включать в себя выявление типа доступа запроса операнда памяти, и на основании выявления того, что тип доступа является доступом типа выборки, прекращения удержания соответствующей кеш-строки в приватном кеше исключительным образом на основании достижения счетчиком заданного интервала.
В некоторых вариантах осуществления способ, кроме того, может включать в себя выявление типа доступа запроса операнда памяти, и на основании того, что тип доступа является типом сохранения или типом обновления, способможет включать в себя выявление того, является ли последующий запрос операнда памяти назначенным к разблокированию для соответствующей кеш-строки. На основании того, что последующий запрос операнда памяти является назначенным к разблокированию, способ может включать в себя прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом. Кроме того, инициирование счетчика может включать в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти. Кроме того, прекращение удержания соответствующей кеш-строки может произойти при реализации более раннего из событий: достижение счетчиком заданного интервала или получение последующего назначенного к разблокированию запроса операнда памяти для соответствующей кеш-строки.
В одном или нескольких вариантах осуществления любые операторы на объявление кеша недействительным от системного управления вычислительного окружения для соответствующей кеш-строки в приватном кеше отклоняются во время продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти.
В другом аспекте предложена Компьютерная система для обеспечения обработки в вычислительном окружении, содержащая память и взаимодействующий с памятью процессор, причем компьютерная система выполнена для осуществления способа, включающего выявление того, содержит ли поле элемента управления доступом команды значение удержания, представляющее собой обозначение удержания для запроса операнда памяти последующей команды к местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, и по меньшей мере частичное управление обработкой последующей команды вычислительным устройством в зависимости от того, содержит ли поле элемента управления доступом команды значение удержания, причем указанное управление включает: выяснение того, находится ли состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, в исключительном распоряжении вычислительного устройства; и на основании выявления того, что запрос операнда памяти является назначенным к удержанию, и что состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, находится висключительном распоряжении, продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, причем продолжение удержания включает в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала.
Объектом изобретения является также компьютерно-реализуемый способ обеспечения обработки в вычислительном окружении, включающий выявление процессором того, содержит ли поле элемента управления доступом команды значение удержания, представляющее собой обозначение удержания для запроса операнда памяти последующей команды к местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, и по меньшей мере частичное управление обработкой последующей команды вычислительным устройством в зависимости от того, содержит ли поле элемента управления доступом команды значение удержания, причем указанное управление включает: выяснение того, находится ли состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, в исключительном распоряжении вычислительного устройства; и на основании выявления того, что запрос операнда памяти является назначенным к удержанию, и что состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, находится в исключительном распоряжении, продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, причем продолжение удержания включает в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала.
Посредством описанных в настоящем документе методов реализованы дополнительные признаки и преимущества. Другие варианты осуществления и аспекты подробно описаны в настоящем документе и считаются частью заявленного изобретения.
Краткое описание чертежей
Один или несколько аспектов, прежде всего, указаны и явным образом заявлены в качестве примеров в пунктах формулы изобретения в конце технического описания. Ранее указанные и другие цели, признаки и преимущества являются очевидными из последующего подробного описания, предпринятого совместно с сопровождающими чертежами, на которых:
Фиг. 1 изображает один пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 2 изображает другой пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 3 изображает один пример многопроцессорного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 4 изображает один вариант осуществления связанной с запросом операнда памяти обработки, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 5А и 5Б изображают более подробный пример связанной с запросом операнда памяти обработки согласно одному или нескольким вариантам осуществления настоящего изобретения,
Фиг. 6А показывают один вариант осуществления формата команды, пригодного согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 6Б показывает один вариант осуществления поля элемента управления намерением доступа формата команды, как он показан на фиг. 6А, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 7 показывает вариант осуществления блок-схемы, которая может быть использована в управлении логикой работы обработки с помощью команды, как она показана на фиг. 6А и 6Б, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 8А и 8Б изображают другой пример связанной с запросом операнда памяти обработки, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 9А изображает другой пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 9Б изображает более подробную информацию по памяти на фиг. 9А,
Фиг. 10 изображает один вариант осуществления облачного вычислительного окружения, и
Фиг. 11 изображает один пример уровней модельной абстракции.
Подробное описание
Как отмечено, признаки вычислительного устройства, направленные на повышение производительности отдельного вычислительного устройства, такие как конвейерная обработка, суперскалярная обработка, выполнение с изменением последовательности и предсказание ветвлений, могут привести к упреждающим запросам памяти. Упреждающие запросы к приватным местоположениям памяти могут быть выгодными, но чрезмерные упреждающие запросы к общим местоположениям памяти могут оказаться вредными для обработки семафоров (или блокировок).
Конкуренция между вычислительными устройствами за семафоры для управления общим, совместно используемым местоположением памяти увеличивается по мере: увеличения числа упреждающих запросов к памяти со стороны вычислительных устройств в вычислительном окружении (или в вычислительной конфигурации), увеличения числа вычислительных устройств в вычислительном окружении, или (возможно) в зависимости от топологии подсистемы памяти, и т.д. По мере возрастания конкуренции между вычислительными устройствами, для каждого отдельного вычислительного устройства становится все более затруднительным успешное получение и удержание строки памяти, содержащей конкретное местоположение совместно используемой памяти. Поэтому, полная производительность системы может ухудшаться.
Например, поскольку несколько вычислительных устройств пытаются обновить соответствующее семафору местоположение памяти, системное управление может передавать операторы на объявление кеша недействительным на все вычислительные устройства в вычислительном окружении, включая сюда вычислительное устройство, в настоящее время удерживающее строку памяти, которая может содержать семафор в исключительном состоянии. Стандартные протоколы управления памятью могут принудить процессор, в настоящее время выполняющий владеющий блокировкой процесс, к разблокированию исключительного распоряжения строкой прежде выполнения процессом всех задач, и прежде, чем процесс сможет обновить блокировку для указания на прекращение использования совместно используемой области. В этом случае, для вычислительного устройства возникает необходимость последующего обратного получения строки исключительным образом с целью окончания процесса. С учетом вышеизложенного, содержащие семафор кеш-строки могут зачастую приводить к непроизводительной затрате ресурсов вычислительного окружения, не принося пользы любому отдельному процессу.
Согласно одному или нескольким аспектам настоящего изобретения, для программы предоставлено средство для сигнализации вычислительному устройству о том, что конкретный доступ операнда памяти соответствует общему местоположению памяти, содержащему семафор (или блокировку), и должен иметь расширенное удержание. При получении такого сообщения, вычислительное устройство имеет возможность отклонения от стандартных протоколов управления памятью в целях удержания кеш-строки исключительным образом во всем вычислительном окружении на протяжении более длительного чем обычно времени, таким образом повышая вероятность завершения обрабатываемого в вычислительном устройстве процесса прежде разблокирования кеш-строки. В результате, уменьшено число случаев содержания кеш-строкой семафора (или блокировки), способных приводить к непроизводительной затрате ресурсов вычислительного окружения, и таким образом, повышена полная производительность системы.
Один вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 1. В одном примере, вычислительное окружение основано на z/Архитектуре, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Один вариант осуществления z/Архитектуры описан в публикации IBM® под названием «z/Архитектура, принципы работы» (z/Architecture, Principles of Operation), публикация IBM № SA22-7832-10, март 2015, включенной в настоящий документ путем отсылки в полном объеме. z/Architecture является зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорк, США.
В другом примере, вычислительное окружение основано на Архитектуре Power, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Один вариант осуществления Архитектуры Power описан в публикации «Power ISA™ версия 2.07В» (Power ISA™ Version 2.07 В), International Business Machines Corporation, от 9 апреля 2015, включенной в настоящий документ путем отсылки в полном объеме. Power Architecture является
зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорка, США.
Вычислительное окружение может также быть основано на другой архитектуре, в том числе, но не ограничиваясь, на архитектуре Intel х86. Имеются также и другие примеры.
Как показано на фиг. 1, вычислительное окружение 100 включает в себя, например, узел 10, имеющий, например, компьютерную систему/сервер 12, которая может быть использована совместно с многочисленными другими окружениями, вычислительными системами или конфигурациями общего назначения или особого назначения. Примеры известных вычислительных систем, окружений и/или конфигураций, которые могут подойти для использования с компьютерной системой/сервером 12, включают в себя, но ими не ограничиваются, системы персонального компьютера (ПК), серверные компьютерные системы, тонкие клиенты, толстые клиенты, наладонные или переносные устройства, многопроцессорные системы, основанные на микропроцессорах системы, декодеры каналов кабельного телевидения, программируемую бытовую электронику, сетевые персональные компьютеры, миникомпьютерные системы, мэйнфреймовые компьютерные системы, а также распределенные облачные вычислительные окружения, включающие в себя любые из вышеупомянутых систем или устройств, и т.п.
Компьютерная система/сервер 12 может быть описана в общем контексте выполняемых компьютерной системой команд, таких как выполняемые компьютерной системой программные модули. Обычно, программные модули могут включать в себя подпрограммы, программы, объекты, компоненты, логику, структуры данных и тому подобные элементы, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Компьютерная система/сервер 12 может быть применена во многих вычислительных окружениях, в том числе, но не ограничиваясь, в распределенных облачных вычислительных окружениях, где задачи выполняют связанные посредством коммуникационной сети отдаленные устройства обработки. В распределенном окружении облачных вычислений программные модули могут быть расположены как в локальных, так и в удаленных носителях информации компьютерной системы, содержащих запоминающие устройства памяти.
Как показано на фиг. 1, компьютерная система/сервер 12 показана в виде вычислительного устройства общего назначения. Компоненты компьютерной системы/сервера 12 могут включать в себя, но не ими ограничиваются, один или несколько процессоров или вычислительных устройств 16, системную память 28, и шину 18, которая соединяет с процессором 16 различные компоненты системы, включающие в себя системную память 28.
Шина 18 представляет собой один или более из числа любых нескольких типов структур шины, включая сюда шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, а также шину процессора или локальную шину, использующую любую из ряда шинных архитектур. В качестве примера, но не ограничения, такая архитектура включает в себя шину Промышленной стандартной архитектуры (ISA), шину Микроканальной архитектуры (МСА), шину Расширенной ISA архитектуры (EISA), локальную шину Ассоциации по стандартам в области видео-электроники (VESA) и шину Взаимодействия периферийных компонентов (PCI).
Компьютерная система/сервер 12 обычно включает в себя ряд считываемых компьютерной системой носителей. Такие носители могут быть представлены любыми доступными носителями, которые являются доступными посредством компьютерной системы/сервера 12, и которые включают в себя как энергозависимые, так и энергонезависимые носители, съемные и несъемные носители.
Системная память 28 может включать в себя считываемые компьютерной системой носители в виде энергозависимой памяти, такие как оперативная память (RAM) 30 и/или кеш-память 32. Компьютерная система/сервер 12, кроме того, может включать в себя и другие съемные и несъемные, энергозависимые и энергонезависимые информационные носители компьютерной системы. Исключительно в качестве примера, может быть предоставлена система 34 хранения для считывания из несъемных, энергонезависимых магнитных носителей (не показанных и обычно называемых «жестким диском») и для записи в них. Хотя не показаны, могут быть предоставлены магнитный дисковод для считывания из несъемного, энергонезависимого магнитного диска (например, «гибкого диска») и для записи в него, и оптический дисковод для считывания из несъемного, энергонезависимого оптического диска, такого как CD-ROM, DVD-ROM или другие оптические носители, и для записи в них. В таких реализациях каждый дисковод может быть присоединен к шине 18 посредством одного или нескольких интерфейсов носителей данных. Как будет, кроме того, изображено и описано ниже, память 28 может включать в себя по меньшей мере один программный продукт, имеющий набор (например, по меньшей мере один) программных модулей, которые сконфигурированы для выполнения функций вариантов осуществления настоящего изобретения.
В качестве примера, но не ограничения, программа/сервисная программа 40, имеющая набор (по меньшей мере один) программных модулей 42, может быть сохранена в памяти 28, равно как операционная система, одна или несколько прикладных программ, другие программные модули и данные программы. Каждый элемент из числа операционной системы, одной или нескольких прикладных программ, других программных модулей и данных программы или некоторая комбинация из них может включать в себя реализацию сетевого окружения. Программные модули 42 в основном имеют возможность выполнения функций и/или методологий одного или нескольких вариантов осуществления настоящего изобретения, как они описаны в настоящем документе.
Компьютерная система/сервер 12 может также сообщаться с одним или несколькими внешними устройствами 14, такими как клавиатура, позиционирующее устройство, дисплей 24, и т.д., с одним или несколькими устройствами, обеспечивающими пользователю взаимодействие с компьютерной системой/сервером 12, и/или любыми устройствами (например, сетевой платой, модемом и т.д.), которые обеспечивают компьютерной системе/серверу 12 сообщение с одним или несколькими другими вычислительными устройствами. Такая коммуникация может происходить через интерфейсы 22 ввода/вывода (I/O). Кроме того, компьютерная система/сервер 12 может сообщаться через сетевой адаптер 20 с одной или несколькими сетями, такими как локальная сеть (LAN), общая глобальная сеть (WAN) и/или сеть общего пользования (например, Интернет). Как изображено, сетевой адаптер 20 сообщается с другими компонентами компьютерной системы/сервера 12 через шину 18. Следует понимать, что совместно с компьютерной системой/сервером 12 могут быть использованы, хотя и не показаны, другие аппаратные компоненты и/или компоненты программного обеспечения. Примеры, в том числе, но не ограничиваясь: микрокод, драйверы устройств, резервные вычислительные устройства, массивы внешних дисководов, системы RAID (массивы недорогих дисковых накопителей с избыточностью), устройства записи на ленту, системы архивного хранения данных и т.д.
В качестве примера, процессор 16 может включать в себя несколько используемых для выполнения команд функциональных компонентов. Эти функциональные компоненты включают в себя, например, компонент выборки команды для выборки подлежащих выполнению команд, устройство декодирования команд для декодирования выбранных команд и для получения операндов декодированных команд, компонент выполнения команд для выполнения декодированных команд, компонент доступа к памяти для доступа, в случае необходимости, к памяти для выполнения команд, и компонент перезаписи для предоставления результатов выполненных команд. Один или несколько из этих компонентов, согласно аспекту настоящего изобретения, могут быть использованы для реализации отклонений от типичных протоколов управления памятью относительно кеш-строки, соответствующих запросу операнда памяти, идентифицируемому как удержание, а также для возобновления типичных протоколов управления памятью относительно кеш-строки, соответствующих запросу операнда памяти, идентифицируемому как разблокирование, как дополнительно описано ниже.
Процессор 16 также включает в себя, в одном варианте осуществления, один или несколько регистров для использования посредством одного или нескольких из числа функциональных компонентов.
Один вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения описан с отсылками на фиг. 2. В одном примере вычислительное окружение может, опять-таки, быть основано на вышеупомянутой Z/Архитектуре, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. В другом примере вычислительное окружение может быть основано на вышеупомянутой Архитектуре Power, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Вычислительное окружение может также быть основано на другой архитектуре, в том числе, но не ограничиваясь, на архитектурах Intel 64 и IA-32. Имеются также и другие примеры.
Как показано на фиг. 2, в одном примере, вычислительное окружение 200 включает в себя по меньшей мере одно вычислительное устройство (PU), такое как центральное вычислительное устройство (CPU), соединенное с одним или несколькими высокоуровневыми кешами 205. Центральное вычислительное устройство 16 включает в себя, например, одно или несколько исполнительных устройств 201 для запроса и использования данных. Исполнительные устройства 201 соединены с устройством 202 загрузки и хранения (LSU), которое включает в себя список 203 очередности загрузки и сохранения (LSQ). Устройство 202 загрузки и сохранения выпускает операции по доступу к памяти (загрузок и сохранений), которые извлекают выбранные с упреждением данные или принуждают к выбору данных подсистему памяти или высокоуровневые кеши. LSU 202 может быть соединено с локальным (или приватным) кешем (кешами) 204 посредством, например, механизма трансляции, такого как, например, буфер быстрого преобразования адреса (TLB) или таблица трансляции исполнительного адреса в реальный (ERAT).
Процессор 16 соединен и находится в сообщении с иерархией памяти, включающей в себя, например, локальный (или приватный) кеш (кеши) 204, который может включать в себя кеш L1 данных, один или несколько высокоуровневых кешей 205, которые могут включать в себя два одноуровневых кеша (L2) или несколько других последовательно пронумерованных более высоких уровней, например L3, L4, память 215, и связанный контроллер 210 памяти, который управляет доступами к памяти 215. Локальный кеш (кеши) 204 служит буфером упреждающей выборки для данных (и/или потоков данных), которые выбирают с упреждением. Локальный кеш (кеши) 204 имеет соответствующий список очередности пропусков загрузки (LMQ), который кеш использует для сохранения информации о продолжающихся запросах упреждающей выборки.
Кроме того, в одном варианте осуществления, локальный кеш (кеши) 204 может иметь связанный каталог кеша, который может быть реализован как часть кеша или поддержан отдельно от него. Каталог кеша может включать в себя тег для каждой кеш-строки в локальном кеше. Тег предоставляет информацию о кеш-строке, включая сюда, по меньшей мере, часть реального или абсолютного адреса данных в кеш-строке, а также информацию о статусе, такую как, об удержании данных в качестве исключительных или совместно используемых и т.д., об использовании данных, такую как, являются ли они использованными наиболее недавно, использованными наиболее давно, или где-нибудь в промежутке и т.д., и/или другую информацию о статусе. Тег может также включать в себя дополнительную информацию относительно данных в кеш-строке. Каждый уровень кеша может иметь связанный каталог кеша, либо его собственный каталог, либо совместно используемый каталог.
В дополнение к типовой иерархии памяти, вычислительное окружение 200 может также включать в себя дополнительные запоминающие устройства, являющиеся частью иерархии памяти с точки зрения вычислительного устройства 16. Запоминающие устройства могут быть представлены одним или несколькими электронными носителями, такими как гибкий диск, жесткий диск, CD-ROM или DVD. CPU 102 сообщено с каждым из вышеупомянутых устройств в пределах иерархии памяти посредством различных механизмов, включающих в себя шины и/или прямые каналы, в качестве примеров.
Шины могут представлять собой один или более из любых нескольких типов структур шины, включая сюда шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, а также шину процессора или локальную шину, использующую любую из ряда шинных архитектур. В качестве примера, но не ограничения, такая архитектура включает в себя шину Промышленной стандартной архитектуры (ISA), локальную шину Ассоциации по стандартам в области видео-электроники (VESA) и шину Взаимодействия периферийных компонентов (PCI).
В другом варианте осуществления, раскрытая в настоящем документе обработка может быть использована в многопроцессорном окружении, таком как описанное ниже с отсылками на фиг. 3. В одном примере многопроцессорное окружение 300 включает в себя несколько ядер 302а…302n. Каждое ядро включает в себя по меньшей мере один аппаратный поток или вычислительное устройство 304а, 304n, которое включает в себя локальный (или приватный) кеш, такой как кеш L1 306а, 306n. Каждое ядро 302а, 302n соединено с нулевым или более высокоуровневым приватным кешем (например, с кешем (кешами) L2). Кроме того, многопроцессорное окружение 300 включает в себя нулевой или более высокоуровневые совместно используемые кеши 310, такие как кеши L3 и/или L4, которые совместно используются ядрами, и прежде всего, совместно используются вычислительными устройствами. Также может быть реализована и другая топология.
Каждое вычислительное устройство в многопроцессорном окружении (или в подмножестве вычислительных устройств) может также включать в себя функцию запроса, которая подлежит использованию для запроса одного или нескольких кешей, включая сюда один или несколько из совместно используемых кешей, при их наличии, для получения статуса резидентности кеша и/или другой информации по выбранным данным.
Как отмечено, согласно одному или нескольким аспектам настоящего изобретения, в настоящем документе предоставлено средство для усовершенствования обработки в вычислительном окружении. Как показано на фиг. 4, средство может включать в себя инструмент для выявления того, является ли запрос операнда памяти к местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, назначенным к удержанию 400. Кроме того, средство включает в себя выяснение того, находится ли состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, в исключительном распоряжении 410. На основании выявления того, что запрос операнда памяти является назначенным к удержанию, и что состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, находится в исключительном распоряжении, способ, кроме того, включает в себя продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти. Продолжение удержания может включать в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала.
В одном или нескольких вариантах осуществления инициирование счетчика может включать в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, и прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом после достижения счетчиком заданного интервала. В одних или несколько вариантах осуществления длина заданного интервала может зависеть от типа доступа запроса операнда памяти. Тип доступа может быть представлен, например, доступами типа выборки, типа сохранения или типа обновления. В некоторых вариантах осуществления длина заданного интервала может быть большей для доступа типа сохранения или доступа типа обновления, чем для доступа типа выборки. В качестве примера, заданный интервал может быть представлен основанным на времени интервалом или основанным на циклах интервалом, а продолженное удержание соответствующей кеш-строки может быть разблокировано по достижении счетчиков в прямом или в обратном порядке отсчета заданного отсчетного интервала.
В одном или нескольких вариантах осуществления средство может включать в себя выявление типа доступа запроса операнда памяти, и на основании выявления того, что тип доступа является доступом типа выборки, удержания соответствующей кеш-строки в приватном кеше исключительным образом может быть прекращено на основании достижения счетчиком заданного интервала.
В одном или нескольких вариантах осуществления средство имеет возможность выявления типа доступа запроса операнда памяти, и на основании того, что тип доступа является типом сохранения или типом обновления, последующего выявления того, является ли последующий запрос операнда назначенным к разблокированию для соответствующей кеш-строки. На основании того, что последующий запрос операнда памяти является назначенным к разблокированию, прекращают исключительное удержание соответствующей кеш-строки в приватном кеше. Кроме того, инициирование счетчика может включать в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, и прекращение удержания соответствующей кеш-строки по достижении ближайшего из событий: последующий запрос операнда памяти является назначенным к разблокированию или счетчик достигает заданного отсчетного интервала.
В одном или нескольких вариантах осуществления любые операторы на объявление кеша недействительным (например, от системного управления вычислительного окружения) для соответствующей кеш-строки в приватном кеше отклоняются во время продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти.
Фиг. 5А и 5Б изображают более подробный вариант осуществления последовательности операций согласно одному или нескольким аспектам настоящего изобретения. Обращаясь сначала к фиг. 5А, вычислительное устройство имеет возможность выбора команды 500 и декодирования этой команды для выявления, например, относящихся к операнду сигналов, исполнительного устройства (LSU, FXU, и т.д.), обозначения «удержания», обозначения «разблокирования» и т.д., 505. Как отмечено, инструмент для предоставления обозначения удержания и обозначения разблокирования может быть реализован в архитектуре системы команд (ISA), пример чего описан ниже с отсылками на фиг. 6А-7.
Команду ставят в очередь на выполнение 510, и вычислительное устройство выявляет готовность команды к выпуску 515. При ответе «нет», команда остается в очереди 510. В противном случае, команду выпускают к исполнительному устройству. В этом примере, команда, как предполагается, включает в себя запрос операнда памяти или доступ к операнду памяти и выпускается к устройству загрузки и сохранения (LSU) 501 (фиг. 5Б) для ее обработки.
Как показано на фиг. 5Б, LSU 501 выявляет адрес операнда памяти 530, и запрашивает доступ операнда памяти от всей иерархии памяти (включающий в себя приватный кеш вычислительного устройства, такой как кеш L1) 535.
В изображенной реализации LSU 501 выявляет, обозначается ли запрос операнда памяти как удержание 540. При ответе «нет», при обработке запроса операнда памяти применяют стандартные протоколы управления памятью 595. При ответе «да», LSU 501 выявляет тип доступа к памяти 545. В изображенном примере тип доступа к памяти может включать в себя доступ типа выборки, или альтернативно, доступ типа сохранения или доступ типа обновления, связанный с запросом операнда памяти.
Исходя из наличия доступа типа выборки, обработка выявляет состояние приватной кеш-строки после завершения обработки запроса 550. Состояние является либо состоянием только для считывания (RO), либо исключительным (ЕХ) состоянием. Когда состояние - только для считывания, LSU 501 продолжает стандартные протоколы управления памятью 595. Однако, когда соответствующая кеш-строка в приватном кеше удерживается исключительной (ЕХ), инициируют счетчик для обеспечения удержания кеш-строки на протяжении требуемого (или заданного) интервала. Прежде всего, в одном или нескольких вариантах осуществления таймер имеет возможность запуска периода Т1 выдержки времени 555. Следует обратить внимание на то, что в одном или нескольких других вариантах осуществления может быть использован основанный на циклах интервал, а не основанный на времени интервал.
LSU 501 выявляет истечение временного периода ТТ 560, и при ответе «нет», продолжает удерживать соответствующую кеш-строку в приватном кеше исключительным образом, например, посредством отклонения любых операторов (XI) на объявление кеша недействительным от системного управления (SC), связанного с конкретной приватной кеш-строкой 565. После истечения периода или интервала выдержки времени, обработка возвращается к стандартным протоколам управления памятью 595. Следует обратить внимание на то, что во время расширенного интервала удержания, обработка запроса операнда памяти может быть завершена, но обработка команды, с которой связан запрос, может быть не завершена, и таким образом, раскрытое средство предоставляет программе опцию более длительного продолжения удержания кеш-строки, чем может быть возможным в противном случае обычного выполнения. В качестве конкретного примера, такая обработка может быть выгодной, когда команда является командой загрузки и проверки, как рассмотрено ниже.
Возвращаясь к информационному запросу 545, когда тип доступа к памяти является доступом типа сохранения или типа обновления, тогда обработка выявляет состояние приватной кеш-строки после завершения обработки запроса 570. Когда строка - только для считывания (RO), обработка возвращается к стандартным протоколам памяти 595. Когда строка - исключительная (ЕХ), инициируют счетчик для обеспечения удержания соответствующей кеш-строки в приватном кеше исключительным образом на протяжении требуемого интервала. В примере с основанным на времени интервалом, это может включать в себя запуск периода или интервала Т2 выдержки времени 575. Следует обратить внимание на то, что в одном или нескольких вариантах осуществления период Т2 выдержки времени может значительно превышать период Т1 выдержки времени. Следует обратить внимание также на то, что в одном или нескольких других вариантах осуществления может использоваться основанный на циклах интервал, но не основанный на времени интервал.
LSU 501 затем выявляет истечение периода Т2 выдержки времени 580, и при ответе «да», возвращается к стандартным протоколам управления памятью 595, разблокируя удержание соответствующей кеш-строки. Если период Т2 выдержки времени не истек, обработка выявляет, завершен ли последующий назначенный к разблокированию запрос операнда памяти для соответствующей (например, L1) кеш-строки 585. При ответе «да», обработка возвращается к стандартным протоколам управления памятью 595. При ответе «нет», LSU 501 отклоняет любые операторы (XI) на объявление кеша недействительным от системного управления (управлений), связанного с конкретной приватной (например, L1) кеш-строкой 590, и возвращается к выявлению того, истек ли период Т2 выдержки времени 580.
Один вариант осуществления формата команды, который может быть использован согласно одному или нескольким вариантам осуществления настоящего изобретения, описан ниже с отсылками на фиг. 6А-7. На фиг. 6А изображен формат команды, известный как команда намерения доступа к следующей команде (NIAI). Этот формат команды может включать в себя поле 601 операционного кода (OPCODE), указывающее, что эта команда является командой намерения доступа к следующей команде. Кроме того, может быть предоставлено зарезервированное поле 602, которое, в одном или нескольких вариантах осуществления может содержать ноли. Формат команды может также включать в себя поля или операнды, такие как поле 603 элемента управления намерением доступа (I1), а также другое поле 604 элемента управления намерением доступа (I2).
Для этого формата команды термин «операнд первичного доступа» означает самый низко-пронумерованный операнд памяти команды. Подобным образом, термин «операнд вторичного доступа» означает следующий самый низко-пронумерованный операнд памяти команды. Эти термины не имеют того же значения как термины «первый операнд» и «второй операнд», хотя между ними может существовать некоторая корреляция.
Под действием элементов управления в полях I1 603 и I2 604, CPU получает сигнал относительно будущего намерения доступа для одного или для обоих из числа операндов первичного и вторичного доступа следующей последовательной команды. Следующая последовательная команда может быть представлена командой, которую выбирают и выполняют после команды NIAI. Поле I1 603 может содержать код для передачи на CPU сигнала о намерении доступа для операнда первичного доступа следующей последовательной команды. Поле I2 604 может содержать код для передачи на CPU сигнала о намерении доступа для операнда вторичного доступа следующей последовательной команды. Когда следующая последовательная команда имеет только единственный операнд памяти, поле I2 604 может быть проигнорировано.
Один вариант осуществления формата команды может включать в себя единственное поле намерения доступа. Другой вариант осуществления формата команды может включать в себя два поля намерения доступа. Другой вариант осуществления формата команды может включать в себя несколько полей намерения доступа. Еще один другой вариант осуществления формата команды может включать в себя поле или операнд, содержащий значение, задающее несколько следующих последовательных команд. Поля I1 603 и I2 604 элементов управления намерения доступа могут иметь формат 610, как показано на фиг. 6 В, где заданное число битов полей I1 603 и I2 604 содержат целое число без знака, используемое в качестве кода для передачи на CPU сигнала о намерении доступа для соответствующего операнда следующей последовательной команды.
Согласно одному или нескольким аспектам настоящего изобретения, могут быть предусмотрены новые коды намерения доступа, например команда намерения доступа к следующей команде, для обеспечения программе и вычислительному устройству способности расширения возможностей по удержанию кеш-строки, связанной с местоположением памяти с отсылкой по операнду через иерархию памяти при получении исключительным образом. Удержание может быть представлено любым интервалом, таким как требуемый промежуток времени, расширенным по сравнению с типичными или обычными протоколами операнда памяти. Таким образом, использующей совместно используемый ресурс памяти программе предоставляют способность получения дополнительного времени для дальнейшей работы, до возможной потери ею контроля над совместно используемым ресурсом памяти в пользу другого вычислительного устройства в вычислительном окружении, в котором несколько вычислительных устройств совместно используют область памяти. Кроме того, когда поле элемента управления намерения доступа содержит отличное заданное значение (указывающее на разблокирование), вычислительное устройство имеет возможность завершения расширенного периода времени, в течение которого кеш-строка удерживается исключительным образом по всей иерархии памяти (то есть, когда расширенный период времени был инициирован предшествующей парой команд, включающих в себя намерение доступа к следующей команде с кодом, назначенным к удержанию. В этом случае, намерение состоит в освобождении управления совместно используемого ресурса памяти для использования его другими вычислительными устройствами. Исключительно в качестве конкретного примера, поле элемента управления намерения доступа для значения удержания может быть представлено, например, значением 8, где соответствующая отсылка по операнду следующей последовательной команды сделана для общей области памяти в многопроцессорном окружении. Кроме того, поле элемента управления намерения доступа для значения разблокирования может быть представлено, например, значением 7, где соответствующая отсылка по операнду следующей последовательной команды сделана для общей области памяти в многопроцессорном окружении.
Как отмечено, при помощи значений удержания и разблокирования в поле (полях) элемента управления, является возможным уменьшение воздействия ненужных операций в подсистеме памяти. Назначенное к «удержанию» поле элемента управления намерения доступа может быть использовано для отсылок по операнду типа выборки, типа сохранения или типа обновления. Расширенный интервал, на протяжении которого кеш-строка может быть удержана исключительным образом в результате использования значения удержания намерения доступа, может быть значительно более длительным для операндов типа сохранения и типа обновления, чем для операндов типа выборки. Когда программа использует значение «удержание» намерения доступа с соответствующим операндом типа сохранения или типа обновления (сигнализирующими вычислительному устройству об удержании конкретной кеш-строки), и кеш-строка успешно обновлена, программа имеет возможность позднейшего явного завершения исключительного удержания при помощи последующей команды намерения доступа к следующей команде, задающей значение «разблокирования» намерения доступа с помощью соответствующего операнда типа сохранения или типа обновления, который отсылает на ту же конкретную кеш-строку.
В случае, когда программа использует значение удержания намерения доступа с соответствующим операндом типа выборки, сигнализирующее вычислительному устройству об удержании конкретной кеш-строки исключительным образом, вычислительное устройство выявляет момент завершения удержания без дальнейшей директивы от программы, как объяснено в настоящем документе.
Когда программа использует значение удержания намерения доступа с соответствующей отсылкой по операнду, которая обусловленным образом обновляет местоположение памяти, и квалифицирующее обновление памяти условие не удовлетворено, вычислительное устройство не удерживает соответствующую кеш-строку исключительным образом по всей иерархии памяти в течение расширенного периода времени. Команда сравнения и замены является примером отсылки по операнду памяти, которая обусловленным образом обновляет местоположение памяти. Следует обратить внимание на то, что соответствующий значению разблокирования намерения доступа операнд должен быть представлен операндом типа сохранения или типа обновления. Кроме того, значения удержания и разблокирования намерений доступа могут быть использованы с операндом первичного доступа, как задано полем П.
Ниже описан конкретный пример использования команды намерения доступа к следующей команде со значениями удержания и разблокирования намерений доступа при использовании служебной программы семафора (или служебной программы блокировки). Предпочтительно, с помощью этих значений намерений доступа уменьшена конкуренция среди нескольких CPU в многопроцессорной конфигурации для области совместно используемой памяти.
В вышеприведенном материале предоставлен пример дополнения программы, состоящей из функций блокировки и разблокировки, с использованием значений удержания и разблокирования намерений доступа в команде намерения доступа к следующей команде (NIAI). Пример демонстрирует местоположения в рамках программы, которые может использовать команда намерения доступа к следующей команде, а также объясняет преимущества. Вышеупомянутый пример включает в себя несколько предположений.
Например, символический адрес LOCKADDR является местоположением памяти для заголовка ресурса, который содержит блокировочное слово. Когда блокировка представлена нолем, блокировка и ресурс являются доступными. Когда блокировка отлична от нуля, блокировка и ресурс не являются доступными, при этом LOCKADDR является местоположением памяти, к которому часто обращаются несколько CPU.
Кроме того, общий регистр 5 содержит ненулевое значение, такое как идентификатор CPU, которое подлежит использованию в качестве блокировочного значения.
Следует обратить внимание на то, что использование команды NIAI в вышеупомянутом примере приводит: к уходу от упреждающих запросов для отсылки по операнду команды LT к иерархии памяти, являющейся внешней по отношению к локальным уровням кеша CPU, таким образом устраняя ненужные запросы по всей подсистеме памяти, и к удержанию кеш-строки, соответствующей отсылке по операнду команды LT, при получении ее исключительным образом, исключительно посредством локального кеша CPU, которое является достаточно продолжительным для задания блокировки, если блокировка является доступной. Следует обратить внимание на то, что, поскольку удержание NIAI соответствует отсылке по операнду типа выборки, не требуется последующее разблокирование NIAI.
Относительно использования команды NIAI, связанной с командой сравнения и замены, следует обратить внимание на то, что: предотвращены упреждающие запросы для отсылки по операнду команды CS к иерархии памяти, являющейся внешней по отношению к локальному уровню кеша CPU, когда соответствующая кеш-строка еще не была получена исключительным образом, тем самым устраняя ненужные запросы по всей подсистеме памяти, цель состоит в удержании кеш-строки (соответствующей отсылке по операнду команды CS) в локальном кеше CPU в течение относительно долгопротяженного периода времени исключительным образом, с целью выполнения многих команд в интервале между программами, промаркированными как LOCKACQUIRED и LOCKRELEASE, причем когда итоговый условный код команды CS равняется О, местоположение памяти LOCKADDR обновляется, a CPU пытается удержать соответствующую LOCKADDR кеш-строку исключительным образом в течение расширенного периода времени, и подразумевается, что программа в дальнейшем использует последующее, соответствующее LOCKADDR разблокирование NIAI для завершения расширенного удержания кеш-строки, а когда итоговый условный код команды CS равняется 1, содержимое памяти в местоположении LOCKADDR не изменяется, a CPU не удерживает соответствующую LOCKADDR кеш-строку в течение расширенного периода времени, и не требуется последующего, соответствующего LOCKADDR разблокирования NIAI.
Относительно использования связанной с командой MVHI команды NIAI, следует отметить, что: предотвращены упреждающие запросы для отсылки по операнду команды MVHI к иерархии памяти, являющейся внешней по отношению к локальному кешу CPU, в том случае, когда соответствующая кеш-строка более не удерживается исключительным образом, таким образом устраняя ненужные запросы по всей подсистеме памяти, и завершается расширенный период времени, в течение которого CPU пытается удерживать исключительным образом соответствующую LOCKADDR кеш-строку.
Следует обратить внимание на то, что одна или несколько команд могут быть добавлены к программе между первой командой BRNZ и программной меткой LOCKAVAIL без подвергания опасности предполагаемую выгоду от использования связанной с командой LT команды NIAI, при условии: добавляют только несколько команд, и ни одна из добавленных команд не сталкивается с неудачным обращением в кеш CPU.
Кроме того, в одном или нескольких конкретных вариантах, после того, как CPU принимает запрос на удержание кеш-строки для соответствующего операнда типа сохранения или типа обновления, никакой последующий запрос на удержание NIAI для соответствующего операнда типа сохранения или типа обновления не может быть принят до завершения обработки начального запроса. Однако CPU имеет возможность приема запроса на удержание кеш-строки для соответствующего операнда типа выборки. В одном или нескольких вариантах осуществления в любой момент времени вычислительное устройство или CPU могут принимать многие запросы на удержание кеш-строк для соответствующих операндов, таких как соответствующие операнды типа выборки. Для соответствующего операнда типа сохранения или типа обновления, который обусловленным образом обновляет местоположение операнда, запрос на удержание кеш-строки не нуждается в принятии, когда кеш-строку не подвергают обновлению. Понятие обновления включает в себя также и тот случай, когда сохраненное значение совпадает с исходным значением. Команда сравнения и замены является примером отсылки по операнду памяти, которая обусловленным образом обновляет местоположение памяти.
Вслед за удержанием NIAI с соответствующим операндом типа выборки не требуется какого-либо последующего разблокирования NIAI для той же кеш-строки. Расширенный период времени удержания кеш-строки, получаемый из удержания NIAI с соответствующим операндом типа выборки, не подлежит завершению в результате попытки разблокирования NIAI для той же кеш-строки.
Кроме того, вслед за удержанием NIAI с соответствующим операндом типа сохранения или типа обновления, который обусловленным образом обновляет местоположение операнда, и при отсутствии обновления кеш-строки, не требуется какое-либо последующее разблокирование NIAI для той же кеш-строки.
Один вариант осуществления блок-схемы согласно варианту осуществления описан с отсылками на фиг. 7. Как показано, в одном или нескольких вариантах осуществления CPU получает команду намерения доступа, указывающую на намерение доступа 700. Намерение доступа может быть связано с операндом следующей последовательной команды. Намерение доступа может также указывать на использование операнда командой (командами), следующими за следующей последовательной командой. В этом случае, CPU выполняет команду намерения доступа 710. В одном варианте осуществления, вычислительное устройство имеет возможность сохранения в памяти намерения доступа путем сохранения его внутренним образом, например, во внутренней памяти или во внутреннем управляющем регистре. CPU получает следующую последовательную команду 720. Следующую последовательную команду выполняют, и в качестве части выполнения, логикой работы вычислительного устройства управляют на основании намерения доступа команды намерения доступа 730.
В одном или нескольких вариантах осуществления описанный в настоящем документе элемент управления логикой работы вычислительного устройства выполнен для избирательного продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, когда запрос операнда памяти является назначенным к удержанию, а соответствующая кеш-строка в приватном кеше, используемом для обработки запроса операнда памяти, находится в исключительном распоряжении вычислительного устройства. Как отмечено, продолжение удержания может включать в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала. Кроме того, на основании того, что тип доступа является типом сохранения или типом обновления, последующий запрос операнда памяти может быть представлен назначенным к разблокированию для соответствующей кеш-строки с целью прекращения удержания соответствующей кеш-строки в приватном кеше исключительным образом. Идентификация запроса операнда памяти в качестве «удержания», или «разблокирования» может быть достигнута, как отмечено выше, в одном или нескольких вариантах осуществления с применением назначенного кода намерения доступа в одном или нескольких из полей элемента управления команды намерения доступа.
Иными словами, когда назначенный к удержанию операнд памяти успешно обработан, первичный результат описанного в настоящем документе средства для вычислительного устройства заключается в отклонении операторов от системного управления на объявление кеша недействительным, связанных с конкретной кеш-строкой, удерживаемой посредством вычислительного устройства исключительным образом. Побочным продуктом отклонения этих операторов является то, что соответствующая кеш-строка удерживается исключительным образом по всей иерархии памяти посредством вычислительного устройства более продолжительное время, чем позволяют типичные протоколы. Когда расширенный интервал удержания истекает, вычислительное устройство все еще удерживает кеш-строку, но после истечения заданного интервала, вычислительное устройство возобновляет выполнение типичных протоколов иерархии памяти. В таком случае, по получении оператора на объявление кеша недействительным (XI) от системного управления, вычислительное устройство разблокирует строку из кеша, и после принятия этого оператора на объявление кеша недействительным, вычислительное устройство более не удерживает кеш-строку.
Согласно фиг. 8А и 8Б, обеспечение обработки в вычислительном окружении (800), согласно одному или нескольким аспектам настоящего изобретения, включает в себя: выявление того, является ли назначенным к удержанию запрос операнда памяти к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, выяснение того, находится ли в исключительном распоряжении вычислительного устройства состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, и на основании выявления того, что запрос операнда памяти является назначенным к удержанию, а состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, находится в исключительном распоряжении, продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти. Продолжение удержания включает в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала.
В одном или нескольких вариантах осуществления инициирование счетчика может включать в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, и прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом после достижения счетчиком заданного интервала 805. В одном или нескольких вариантах осуществления длина заданного интервала зависит от типа доступа запроса операнда памяти, где тип доступа может быть представлен одним из следующих типов доступа: тип выборки, тип сохранения или тип обновления 810. В конкретных вариантах осуществления длина заданного интервала может быть большей для доступов типа сохранения и типа обновления, чем для доступа типа выборки 815. Кроме того, интервал может быть представлен либо основанным на времени интервалом, либо основанным на циклах интервалом 820.
Кроме того, в одном или нескольких вариантах осуществления способ может включать в себя выявление типа доступа запроса операнда памяти, и на основании выявления того, что тип доступа является доступом типа выборки, прекращения удержания соответствующей кеш-строки в приватном кеше исключительным образом на основании достижения счетчиком заданного интервала 825.
В одном или нескольких вариантах осуществления обработка включает в себя выявление типа доступа запроса операнда памяти, и на основании типа доступа, являющегося типом сохранения или типом обновления, выявление того, является ли последующий запрос операнда памяти назначенным к разблокированию для соответствующей кеш-строки, и на основании того, что последующий запрос операнда памяти является назначенным к разблокированию, прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом 830. В одном или нескольких вариантах осуществления инициирование может включать в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, а прекращение удержания соответствующей кеш-строки исключительным образом происходит при реализации более раннего из событий: достижение счетчиком заданного интервала или получение последующего назначенного к разблокированию запроса операнда памяти для соответствующей кеш-строки 835.
Любые операторы на объявление кеша недействительным для соответствующей кеш-строки в приватном кеше отклоняются во время продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти 840.
Другой вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 9А. В этом примере вычислительное окружение 900 включает в себя, например, предназначенное для исходной среды центральное вычислительное устройство (CPU) 902, память 904, а также одно или несколько устройств ввода-вывода и/или интерфейсов 906, соединенных друг с другом, например, через одну или несколько шин 908 и/или других присоединений. Например, вычислительное окружение 900 может включать в себя процессор PowerPC или сервер pSeries, предлагаемые International Business Machines Corporation, Армонк, Нью-Йорк, HP Superdome с процессорами Intel Itanium II, предлагаемый Hewlett Packard, Пало-Альто, Калифорния, и/или другие машины, основанные на архитектурах, предлагаемых International Business Machines Corporation, Hewlett Packard, Intel, Oracle или другими.
Предназначенное для исходной среды центральное вычислительное устройство 902 включает в себя один или несколько предназначенных для исходной среды регистров 910, таких как один или несколько регистров общего назначения и/или один или несколько регистров особого назначения, используемых в процессе обработки в окружении. Эти регистры включают в себя информацию, представляющую состояние окружения на какой-либо конкретный момент времени.
Кроме того, предназначенное для исходной среды центральное вычислительное устройство 902 выполняет команды и код, которые сохраняются в памяти 904. В одном конкретном примере центральное вычислительное устройство выполняет код 912 эмулятора, сохраняемый в памяти 904. Этот код позволяет вычислительному окружению, сконфигурированному в одной архитектуре, эмулировать другую архитектуру. Например, код 912 эмулятора позволяет основанным на отличных от z/Архитектуры архитектурах машинам, таким как процессоры PowerPC, серверы pSeries, серверы HP Superdome или другим, эмулировать z/Архитектуру и выполнять программное обеспечение и команды, разработанные на основе z/Архитектуры.
Дополнительные, относящиеся к коду 912 эмулятора подробности приведены с отсылками на фиг. 9Б. Рассматривая совместно фиг. 9А и 9Б, сохраняемые в памяти 904 гостевые команды 950, содержат команды программного обеспечения (например, коррелирующие с машинными командами), которые были разработаны для выполнения в архитектуре, отличной от таковой для предназначенного для исходной среды CPU 902. Например, гостевые команды 950 могут быть разработаны для выполнения на процессоре z/Архитектуры, но вместо этого, эмулируются на предназначенном для исходной среды CPU 902, которое может быть представлено, например, процессором Intel Itanium II. В одном примере, код 912 эмулятора включает в себя подпрограмму 952 выборки команд для получения одной или нескольких гостевых команд 950 из памяти 904 и, факультативно, для предоставления локальной буферизации для полученных команд. Он также включает в себя подпрограмму 954 трансляции команд для выявления типа полученной гостевой команды и для трансляции гостевой команды в одну или несколько соответствующих команд 956 исходной среды. Такая трансляция включает в себя, например, идентификацию функции, которая подлежит выполнению посредством гостевой команды, и выбор предназначенной для исходной среды команды (команд) для выполнения этой функции.
Кроме того, код 912 эмулятора включает в себя подпрограмму 960 управления эмуляцией для принуждения команд исходной среды к выполнению. Подпрограмма 960 управления эмуляцией может принудить предназначенное для исходной среды CPU 902 к выполнению подпрограммы команд исходной среды, которые эмулируют одну или несколько ранее полученных гостевых команд и, в конце такого выполнения, возвращают управление подпрограмме выборки команд для эмуляции получения следующей гостевой команды или группы гостевых команд. Выполнение команд 956 исходной среды может включать в себя загрузку данных в регистр из памяти 904, сохранение данных обратно в память из регистра, или выполнение арифметической или логической операции некоторого типа, как задано подпрограммой трансляции.
Каждая подпрограмма, например, реализуется в программном обеспечении, сохраняемом в памяти и выполняемом посредством предназначенного для исходной среды центрального вычислительного устройства 902. В других примерах, одна или несколько из числа подпрограмм или операций, реализуются во встроенном программном обеспечении, аппаратных средствах, программном обеспечении или в некоторой комбинации из этих средств. Регистры эмулированного процессора могут быть эмулированы с помощью регистров 910 собственного CPU или при помощи местоположений в памяти 904. В предпочтительных вариантах осуществления гостевые команды 950, команды 956 исходной среды и код 912 эмулятора могут находиться в той же самой памяти или могут быть рассредоточены среди различных запоминающих устройств.
При рассмотрении в настоящем документе, встроенное программное обеспечение включает в себя, например, микрокод, милликод и/или макрокод процессора. Термин включает в себя, например, команды аппаратного уровня и/или структуры данных, используемые в реализации высокоуровневого машинного кода. В одном варианте осуществления, встроенное программное обеспечение включает в себя, например, проприетарный код, обычно поставляемый как микрокод, который включает в себя выверенное программное обеспечение или микрокод, специфичный для используемого оборудования, и управляющий доступом операционной системы к оборудованию системы.
Гостевая команда 950, которую получают, транслируют и выполняют, представлена, например, одной или несколькими описанными в настоящем документе командами. Команду, которая имеет одну архитектуру (например, z/Архитектуру), выбирают из памяти, транслируют и представляют в виде последовательности команд 956 исходной среды другой архитектуры (например, PowerPC, pSeries, Intel и т.д.). Эти команды исходной среды могут быть затем выполнены.
Хотя предоставлены различные примеры, изменения являются возможными без отступления от духа заявленных аспектов. Например, значения, включенные в состав используемых командой регистров и/или полей, в других вариантах осуществления могут быть расположены в других местоположениях, таких как ячейки памяти, и т.д. Являются возможными самые разнообразные вариации.
Один или несколько аспектов могут относиться к облачным вычислениям.
Заранее подразумевается, что, хотя настоящее раскрытие включает в себя подробное описание относительно облачных вычислений, реализация описанных в настоящем документе идей изобретения не ограничена облачным вычислительным окружением. Скорее, варианты осуществления настоящего изобретения могут быть реализованы совместно с любым другим типом вычислительного окружения, известного в настоящее время или разработанным позднее.
Облачные вычисления являются моделью предоставления услуг для обеспечения возможности удобного, в нужный момент времени, сетевого доступа к совместно используемому комплексу конфигурируемых вычислительных ресурсов (например, сетей, сетевых пропускных способностей, серверов, вычислительных мощностей, памяти, запоминающих устройств, приложений, виртуальных машин и услуг), который может быть быстро предоставлен и передан с минимальными управленческими затратами или взаимодействием с поставщиком услуг. Эта облачная модель может включать в себя по меньшей мере пять характеристик, по меньшей мере три модели услуг и по меньшей мере четыре модели развертывания.
Характеристики представлены следующим образом. Самообслуживание в нужный момент времени: потребитель облачных услуг может в одностороннем порядке обеспечивать вычислительные возможности, такие как время сервера и ресурсы сетевого хранения, по мере необходимости автоматически, без необходимости в человеческом взаимодействии с провайдером услуги.
Широкий доступ к сети: возможности являются доступными по сети, а получение доступа производится посредством стандартных механизмов, что способствует использованию разнородных платформ тонкого или толстого клиента (например, мобильных телефонов, ноутбуков и PDA (личных электронных секретарей)).
Объединение ресурса: вычислительные ресурсы провайдера объединены для обслуживания нескольких потребителей, использующих модель мультиарендатора, причем различные физические и виртуальные ресурсы динамично присваиваются и повторно присваиваются согласно потребности. Смысл независимости от местоположения состоит в том, что потребитель, в большинстве случаев, не имеет никакого контроля или знания относительно точного местоположения предоставляемых ресурсов, но может быть способным к определению местоположения на более высоком уровне абстракции (например, страна, регион или центр обработки данных).
Быстрая адаптационная способность: инструменты могут быть предоставлены быстрым и адаптивным способом, в некоторых случаях автоматически, для быстрого горизонтального масштабирования с увеличением производительности и быстро возвращены системе для быстрого горизонтального масштабирования с уменьшением производительности. Для потребителя, доступные к предоставлению инструменты зачастую представляются неограниченными, и могут быть приобретены в любом объеме в любое время.
Измеренная услуга: облачные системы автоматически управляют использованием ресурса и оптимизируют его путем усиления измерительного инструментария на некотором уровне абстракции, соответствующем типу услуги (например, хранения, обработки, пропускной способности и учетным записям активного пользователя). Использование ресурсов может быть подвергнуто мониторингу, управлению и протоколированию, что обеспечивает прозрачность как для провайдера, так и для потребителя используемой услуги.
Модели услуги представлены следующим образом.
Программное обеспечение как услуга (SaaS): потребителю предоставляется инструмент для использования приложений провайдера, работающих на облачной инфраструктуре. Приложения являются доступными с различных клиентских устройств через интерфейс тонкого клиента, такой как веб-браузер (например, интернет-почта). Потребитель не администрирует и не управляет базовой облачной инфраструктурой, содержащей сеть, серверы, операционные системы, запоминающие устройства или даже индивидуальные прикладные инструменты, за возможным исключением ограничений по настройке параметров конфигурации специфических для пользователя приложений.
Платформа как услуга (PaaS): потребителю предоставляется инструмент для развертывания на облачной инфраструктуре созданных или полученных потребителем приложений, созданных с помощью поддерживаемых провайдером языков программирования и программных средств. Потребитель не администрирует и не управляет базовой облачной инфраструктурой, содержащей сеть, серверы, операционные системы или запоминающие устройства, но управляет развертываемыми приложениями и, возможно, приложением, размещающим настройки среды.
Инфраструктура как услуга (IaaS): потребителю предоставляется инструмент для обеспечения обработки, хранения, сетей и других фундаментальных вычислительных ресурсов, с помощью которого потребитель может разворачивать и выполнять произвольное программное обеспечение, которое может включать в себя операционные системы и приложения. Потребитель не администрирует и не управляет базовой облачной инфраструктурой, но управляет операционными системами, запоминающими устройствами, развертываемыми приложениями и, возможно, имеет ограниченное управление выбором сетевых компонентов (например, межсетевых защитных экранов хоста).
Модели развертывания представлены следующим образом.
Частное облако: облачная инфраструктура действует исключительно для организации. Оно может управляться посредством организации или третьей стороны, и может быть реализовано внутри или вовне организации.
Коллективное облако: облачную инфраструктуру совместно используют несколько организаций и поддерживает особое сообщество, которое имеет совместные интересы (например, главная цель работы, требования к защите, политика и соображения по контролю за соблюдением установленных требований). Оно может управляться посредством организации или третьей стороны, и может быть реализовано внутри или вовне организации.
Открытое облако: облачная инфраструктура сделана доступной для широкой публики или группы крупной отрасли, и принадлежит продающей облачные услуги организации.
Гибридное облако: облачная инфраструктура является сочетанием двух или более облаков (частного, коллективного или отрытого), которые остаются отличными от других объектами, но связаны друг с другом посредством стандартизированной или проприетарной технологии, обеспечивающей для данных и приложений высокую мобильность (например, временное использование ресурсов открытого облака для выравнивания нагрузки между облаками).
Облачное вычислительное окружение является услугой, ориентированной с вниманием на бесструктурность, слабую связность, модульный принцип и семантическую функциональную совместимость. В основе облачных вычислений находится инфраструктура, содержащая сеть из связанных узлов. Один такой узел является узлом 10, изображенным на фиг. 1.
Вычислительный узел 10 является только одним примером подходящего узла облачных вычислений, и не предназначен для предположения какого-либо ограничения относительно объема использования или функциональности вариантов осуществления описанного в настоящем документе изобретения. В любом случае, узел 10 облачных вычислений способен к своей реализации и/или к выполнению любой из сформулированных выше функциональностей.
При рассмотрении теперь фиг. 10, изображено показательное облачное вычислительное окружение 50. Как показано, облачное вычислительное окружение 50 содержит один или несколько узлов 10 облачных вычислений, с помощью которых могут сообщаться используемые облачными потребителями локальные вычислительные устройства, такие как, например, персональный цифровой секретарь (PDA) или сотовый телефон 54А, настольный компьютер 54 В, портативный компьютер 54С, и/или автомобильная компьютерная система 54N. Узлы 10 могут сообщаться друг с другом. Они могут быть сгруппированы (не показано) физически или виртуально, в одну или несколько сетей, таких как частное, коллективное, открытое или гибридное облака, как описано выше, или в комбинацию из них. Это позволяет облачному вычислительному окружению 50 предлагать инфраструктуру, платформы и/или программное обеспечение в качестве услуг, для получения которых облачный потребитель не должен поддерживать ресурсы на локальном вычислительном устройстве. Подразумевается, что показанные на фиг. Подразумевается, что показанные на фиг. 7 типы вычислительных устройств 54A-N предназначены исключительно для разъяснений, и что вычислительные узлы 10 и облачное вычислительное окружение 50 являются способными к сообщению с любым типом компьютеризированного устройства по любому типу сетевого и/или адресуемого через сеть присоединения (например, с помощью веб-браузера).
При рассмотрении теперь фиг. 11, показан ряд функциональных уровней абстракции, предоставляемых облачным вычислительным окружением 50 (фиг. 10). Заранее подразумевается, что компоненты, уровни и функции, показанные на фиг. 11, предназначены исключительно для разъяснений, и ими не ограничены варианты осуществления изобретения. Как изображено, предоставлены следующие уровни и соответствующие функции:
Аппаратный и программный уровень 60 включает в себя аппаратные и программные компоненты. Примеры аппаратных компонентов включают в себя мэйнфреймы 61, основанные на архитектуре RISC (Компьютер с сокращенной системой команд) серверы 62, серверы 63, сверхкомпактные серверы 64, запоминающие устройства 65, а также сети и сетевые компоненты 66. В некоторых вариантах осуществления компоненты программного обеспечения включают в себя программное обеспечение серверного программного обеспечения 67 и программное обеспечение 68 баз данных.
Уровень 70 виртуализации предоставляет уровень абстракции, с которого могут быть предоставлены следующие примеры виртуальных объектов: виртуальные серверы 71, виртуальная память 72, виртуальные сети 73, включая сюда виртуальные частные сети, виртуальные приложения и операционные системы 74, а также виртуальные клиенты 75.
В одном примере, уровень 80 управления может предоставлять описанные ниже функции. Функция 81 выделения ресурсов предоставляет динамическую поставку вычислительных ресурсов и других ресурсов, использующихся для выполнения задач в облачном вычислительном окружении. Функция 82 измерения и оценки предоставляет отслеживание затрат по мере использования ресурсов в облачном вычислительном окружении, а также выписку или выставление счетов за потребление этих ресурсов. В одном примере, эти ресурсы могут содержать лицензии прикладного программного обеспечения. Функция безопасности предоставляет проверку идентификационных данных для облачных потребителей и задач, а также защиту данных и других ресурсов. Функция 83 пользовательского портала предоставляет доступ к облачному вычислительному окружению для потребителей и системных администраторов. Функция 84 управления уровнем услуг предоставляет распределение ресурсов облачных вычислений и управление ими таким образом, что удовлетворяются необходимые уровни услуг. Функция 85 планирования и выполнения Соглашения об уровне услуг (SLA) предоставляет предварительную подготовку и приобретение ресурсов облачных вычислений, для которых в будущем ожидается соответствие требованиям согласно SLA.
Уровень 90 рабочих заданий предоставляет примеры функциональности, для которой может быть использовано окружение облачных вычислений. Примеры рабочих заданий и функций, которые могут быть предоставлены на этом уровне, включают в себя: построение соответствий и передвижение 91 между объектами в базах данных, разработку программного обеспечения и управление его жизненным циклом 92, предоставление 93 образования в виде виртуальной аудитории, обработку 94 анализа данных, а также обработку 96 транзакций.
Настоящее изобретение может быть представлено системой, способом и/или компьютерным программным продуктом на любом возможном уровне интеграции в плане технической детализации. Компьютерный программный продукт может включать в себя машиночитаемый информационный носитель (или носители), имеющий на нем машиночитаемые программные команды для принуждения процессора к выполнению аспектов настоящего изобретения.
Машиночитаемый информационный носитель может быть представлен материальным устройством, которое способно удерживать и сохранять команды для использования посредством исполнительного устройства команд. Машиночитаемый информационный носитель может быть представлен, например, в том числе, но не ограничиваясь, устройством электронной памяти, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией из вышеупомянутого. Неисчерпывающий список более конкретных примеров машиночитаемых информационных носителей включает в себя следующее: портативная компьютерная дискета, жесткий диск, оперативная память (RAM), постоянная память (ROM), стираемая программируемая постоянная память (EPROM или флэш-память), статическая оперативная память (SRAM), переносной компакт-диск для однократной записи данных (CD-ROM), цифровой универсальный диск (DVD), карта памяти, гибкий диск, механически закодированное устройство, такое как перфокарты или выступающие структуры в канавке с записанными на них командами, а также любая подходящая комбинация из вышеупомянутого. Машиночитаемый информационный носитель, как он рассматривается в настоящем документе, не подлежит истолкованию в качестве представленного преходящими сигналами как таковыми, такими как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другие среды передачи (например, проходящие через волоконно-оптический кабель световые импульсы), или передаваемые через провода электрические сигналы.
Описанные в настоящем документе машиночитаемые программные команды могут быть загружены в соответствующие вычислительные/обрабатывающие устройства с машиночитаемого информационного носителя или во внешний компьютер или во внешнее устройство хранения через сеть, например Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сеть может содержать медные кабели передачи, волокна оптической передачи, беспроводную передачу, маршрутизаторы, брандмауэры, переключения, шлюзы и/или граничные серверы. Карта сетевого адаптера или сетевой интерфейс в каждом вычислительном/обрабатывающем устройстве получает машиночитаемые программные команды из сети, и направляет машиночитаемые программные команды для сохранения в машиночитаемый информационный носитель в соответствующем вычислительном/обрабатывающем устройстве.
Машиночитаемые программные команды для выполнения операций настоящего изобретения могут быть представлены командами ассемблера, командами архитектуры системы команд (ISA), машинными командами, машинно-зависимыми командами, микрокодом, командами встроенного программного обеспечения, присваивающими значение состоянию данными, конфигурационными данными для интегральной схемотехники, или иным исходным кодом или объектным кодом, записанным на любой комбинации из одного или нескольких языков программирования, включая сюда объектно-ориентированные языки программирования, такие как Smalltalk, С++ и т.п., а также языки процедурного программирования, такие как язык программирования «С» или подобные языки программирования. Машиночитаемые программные команды могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, как автономный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере или полностью на удаленном компьютере или сервере. В последнем сценарии удаленный компьютер может быть присоединен к компьютеру пользователя через любой тип сети, включая сюда локальную сеть (LAN) или глобальную сеть (WAN), или присоединение может быть сделано к внешнему компьютеру (например, через Интернет с использованием Интернет-провайдера). В некоторых вариантах осуществления электронные схемы, включающие в себя, например, программируемые логические схемы, программируемые на месте вентильные матрицы (FPGA) или программируемые логические матрицы (PLA) могут выполнять машиночитаемые программные команды посредством использования информации о состоянии машиночитаемых программных команд для настройки электронной схемы с целью выполнения аспектов настоящего изобретения.
Аспекты настоящего изобретения описаны в настоящем документе с отсылками на иллюстрации в виде блок-схем и/или блок-диаграмм для способов, устройств (систем) и компьютерных программных продуктов согласно вариантам осуществления изобретения. Подразумевается, что каждый блок иллюстраций в виде блок-схем и/или блок-диаграмм, а также комбинации блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, могут быть реализованы посредством машиночитаемых программных команд.
Такие машиночитаемые программные команды могут быть предоставлены процессору универсального компьютера, специализированного компьютера или другого программируемого устройства обработки данных для образования машины таким образом, что выполняющиеся посредством процессора компьютера или другого программируемого устройства обработки данных команды создают средства для реализации функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы. Такие машиночитаемые программные команды также могут быть сохранены в машиночитаемом информационном носителе, который может управлять компьютером, программируемым устройством обработки данных и/или другими устройствами для их функционирования особым способом таким образом, что сохраняющий на нем команды машиночитаемый информационный носитель представляет собой изделие, содержащее команды, которые реализуют аспекты функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы.
Машиночитаемые программные команды могут также быть загружены в компьютер, другое программируемое устройство обработки данных или другое устройство для принуждения к выполнению на компьютере, другом программируемом устройстве или другом устройстве серии эксплуатационных этапов для получения такого компьютерно-реализованного процесса, что выполняемые на компьютере, другом программируемом устройстве или другом устройстве инструкции реализуют функции/действия, заданные в блоке или блоках блок-схемы и/или блок-диаграммы.
Блок-схемы и блок-диаграммы на чертежах показывают архитектуру, функциональность и функционирование возможных реализаций систем, способов и компьютерных программных продуктов согласно различным вариантам осуществления настоящего изобретения. В этом отношении, каждый блок в блок-схемах или блок-диаграммах может представлять модуль, сегмент или участок команд, который содержит одну или несколько исполняемых команд для реализации указанной логической функции (функций). В некоторых альтернативных реализациях указанные в блоках функции могут осуществляться в порядке, отличном от приведенного на чертежах. Например, два блока, показанные по очереди, могут, фактически, быть выполнены по существу одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от предусмотренной к выполнению функциональности. Необходимо также отметить, что каждый блок на иллюстрациях в виде блок-схем и/или блок-диаграмм, а также в комбинациях блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, может быть реализован посредством основанных на аппаратных средствах систем особого назначения, которые выполняют указанные функции или действия или выполняют комбинации аппаратных и компьютерных команд особого назначения.
В дополнение к вышеупомянутому, один или несколько аспектов могут быть предоставлены, предложены, развернуты, управляемы, обслуживаемы и т.д. поставщиком услуг, предлагающим управление окружениями заказчика. Например, поставщик услуг может создавать, обслуживать, поддерживать и т.д. машинный код и/или компьютерную инфраструктуру, выполняющую один или несколько аспектов для одного или нескольких клиентов. В свою очередь, поставщик услуг может получать оплату от клиента в рамках соглашения о подписке и/или о сборах, в качестве примеров. Дополнительно или альтернативно, поставщик услуг может получать оплату от продажи рекламного содержимого одному или нескольким третьим лицам.
В одном аспекте приложение может быть развернуто для выполнения одного или нескольких предпочтительных вариантов осуществления. В качестве примера, развертывание приложения предусматривает обеспечение компьютерной инфраструктуры, действующей для выполнения одного или нескольких вариантов осуществления.
В качестве другого аспекта, может быть развернута вычислительная инфраструктура, содержащая в вычислительной системе интегрирующий машиночитаемый код, в которой код, в сочетании с вычислительной системой, способен к выполнению одного или нескольких вариантов осуществления.
В качестве еще одного аспекта, может быть предоставлен способ интеграции содержащей интегрирующий машиночитаемый код вычислительной инфраструктуры в компьютерную систему. Компьютерная система содержит машиночитаемый носитель, который компьютерный носитель содержит один или несколько вариантов осуществления. Код в сочетании с компьютерной системой способен к выполнению одного или нескольких вариантов осуществления.
Хотя различные варианты осуществления описаны выше, они являются только примерами. Например, вычислительные окружения другой архитектуры могут быть использованы для охвата и использования одного или нескольких вариантов осуществления. Кроме того, могут быть использованы различные команды, форматы команд, поля команд и/или значения команд.
Являются возможными разнообразные изменения.
Кроме того, могут быть использованы и оказаться выгодными другие типы вычислительных окружений. В качестве примера, является применимой подходящая для сохранения и/или выполнения программного кода система обработки данных, которая включает в себя по меньшей мере два процессора, соединенных прямо или косвенно через системную шину с элементами памяти. Элементы памяти включают в себя, например, локальную память, используемую в процессе фактического выполнения программного кода, запоминающее устройство большого объема и кеш-память, которая предоставляет временное сохранение по меньшей мере части программного кода с целью уменьшения числа выборок из запоминающего устройства большого объема в процессе выполнения.
Устройства ввода-вывода или устройства I/O (в том числе, но не ограничиваясь, клавиатуры, дисплеи, позиционирующие устройства, DASD (запоминающее устройство прямого доступа), устройство записи на ленту, CD, DVD, карты флэш-памяти и другие носители памяти и т.д.) могут быть соединены с системой или непосредственно или через переходные контроллеры I/O. С системой также могут быть соединены сетевые адаптеры для предоставления системе обработки данных возможности установления соединения с другими системами обработки данных или с удаленными принтерами или с запоминающими устройствами посредством переходных частных сетей или сетей общего пользования. Модемы, кабельные модемы и платы Ethernet являются всего несколькими примерами из числа доступных типов сетевых адаптеров.
Используемая в настоящем документе терминология служит исключительно целям описания конкретных вариантов осуществления и не предназначается для ограничения изобретения. При использовании в настоящем документе, формы единственного числа предназначены для включения в себя также и форм множественного числа, если только контекст не указывает на иное недвусмысленным образом. Кроме того, подразумевается, что термины «содержит» и/или «содержащий» при их использовании в данном техническом описании задают присутствие заявленных признаков, целочисленных переменных, этапов, операций, элементов и/или компонентов, но не исключают присутствия или добавления одного или нескольких других признаков, целочисленных переменных, этапов, операций, элементов, компонентов и/или образованных ими групп.
Соответствующие структуры, материалы, действия и эквиваленты всех средств или этапов, равно как функциональные элементы в пунктах формулы изобретения ниже, если вообще есть в наличии, предназначаются для включения в себя любой структуры, материала или действия для выполнения функции в сочетании с другими требуемыми элементами, как конкретным образом заявлено. Описание одного или нескольких вариантов осуществления представлено в целях иллюстрации и описания, но не предназначается для полного охвата или ограничения изобретения в заявленном виде. Многие модификации и изменения являются очевидными для средних специалистов в области техники. Вариант осуществления был выбран и описан с целью наилучшего объяснения различных аспектов и практического применения, а также для обеспечения другим средним специалистам в области техники возможности понимания различных вариантов осуществления с различными модификациями, как они подходят для конкретно рассматриваемого использования.
название | год | авторы | номер документа |
---|---|---|---|
ВРЕМЕННОЕ ПОДАВЛЕНИЕ ОБРАБОТКИ ОГРАНИЧЕННОГО ЗАПРОСА ОПЕРАНДА ПАМЯТИ | 2018 |
|
RU2724654C1 |
СРЕДСТВО ИНСТРУМЕНТАЛЬНОГО ОСНАЩЕНИЯ ДЛЯ ВРЕМЕННЫХ ПРОМЕЖУТКОВ | 2017 |
|
RU2727070C1 |
ОБЩАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ЗАГРУЗКИ ДЛЯ УПРАВЛЯЮЩЕЙ СЕРВИСНОЙ ПРОГРАММЫ, СПОСОБНОЙ К ИНИЦИАЛИЗАЦИИ ВО МНОЖЕСТВЕННЫХ АРХИТЕКТУРАХ | 2015 |
|
RU2665238C2 |
Связанное с выбранными архитектурными функциями администрирование обработки | 2015 |
|
RU2665243C2 |
КОНФИГУРАЦИЯ АРХИТЕКТУРНОГО РЕЖИМА В ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ | 2015 |
|
RU2664413C2 |
УСЛОВНЫЙ ПЕРЕХОД К ЗАДАННОМУ НЕПРЯМЫМ ОБРАЗОМ МЕСТОПОЛОЖЕНИЮ | 2017 |
|
RU2723228C1 |
ОБРАБОТКА СОБЫТИЯ ЗАЩИЩЕННОГО СОХРАНЕНИЯ В ХОДЕ ТРАНЗАКЦИОННОГО ВЫПОЛНЕНИЯ | 2017 |
|
RU2728849C1 |
КОМАНДА НА ВЫПОЛНЕНИЕ ОПЕРАЦИИ ПРИСВОЕНИЯ ЗНАКА ДЕСЯТИЧНОМУ ЧИСЛУ | 2017 |
|
RU2718968C1 |
КОМАНДА УМНОЖЕНИЯ И СДВИГА ДЕСЯТИЧНОГО ЧИСЛА | 2017 |
|
RU2717965C1 |
КОМАНДА СДВИГА И ДЕЛЕНИЯ ДЕСЯТИЧНОГО ЧИСЛА | 2017 |
|
RU2726147C1 |
Изобретение относится к вычислительной технике. Технический результат заключается в повышении производительности вычислительного окружения. Способ обеспечения обработки в вычислительном окружении включает выявление процессором того, содержит ли поле элемента управления доступом команды значение удержания для запроса операнда памяти последующей команды к местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, и частичное управление обработкой последующей команды вычислительным устройством в зависимости от того, содержит ли поле элемента управления доступом команды значение удержания, причем указанное управление включает: выяснение того, находится ли состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, в исключительном распоряжении вычислительного устройства; и на основании выявления того, что запрос операнда памяти является назначенным к удержанию и что состояние соответствующей кеш-строки в приватном кеше находится в исключительном распоряжении, продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти. 3 н. и 22 з.п. ф-лы, 15 ил.
1. Машиночитаемый информационный носитель, считываемый вычислительным устройством и хранящий команды для обеспечения обработки в вычислительном окружении, при выполнении которых посредством вычислительного устройства осуществляется способ, включающий:
- выявление того, содержит ли поле элемента управления доступом команды значение удержания, представляющее собой обозначение удержания для запроса операнда памяти последующей команды к местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, и
- по меньшей мере частичное управление обработкой последующей команды в зависимости от того, содержит ли поле элемента управления доступом команды значение удержания, причем указанное управление включает:
- выяснение того, находится ли состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, в исключительном распоряжении вычислительного устройства; и
- на основании выявления того, что запрос операнда памяти является назначенным к удержанию и что состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, находится в исключительном распоряжении, продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, причем продолжение удержания включает в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала.
2. Машиночитаемый информационный носитель по п. 1, причем инициирование включает в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти и прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом после достижения счетчиком заданного интервала.
3. Машиночитаемый информационный носитель по п. 2, причем длина заданного интервала зависит от типа доступа запроса операнда памяти и причем тип доступа входит в группу, состоящую из типа выборки, типа сохранения и типа обновления.
4. Машиночитаемый информационный носитель по п. 3, причем длина заданного отсчетного интервала является большей для типа сохранения и типа обновления, чем для типа выборки.
5. Машиночитаемый информационный носитель по п. 2, причем заданный интервал выбран из группы, состоящей из основанного на времени интервала и основанного на циклах интервала.
6. Машиночитаемый информационный носитель по п. 2, который, кроме того, содержит выявление типа доступа запроса операнда памяти и на основании выявления того, что тип доступа является доступом типа выборки, прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом на основании достижения счетчиком заданного интервала.
7. Машиночитаемый информационный носитель по п. 1, который, кроме того, содержит выявление типа доступа запроса операнда памяти, и на основании типа доступа, являющегося типом сохранения или типом обновления, выявление того, является ли последующий запрос операнда памяти назначенным к разблокированию для соответствующей кеш-строки, и на основании того, что последующий запрос операнда памяти является назначенным к разблокированию, прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом.
8. Машиночитаемый информационный носитель по п. 7, причем инициирование включает в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, причем прекращение удержания соответствующей кеш-строки исключительным образом происходит при реализации более раннего из событий: достижения счетчиком заданного интервала или получения последующего назначенного к разблокированию запроса операнда памяти для соответствующей кеш-строки.
9. Машиночитаемый информационный носитель по п. 1, причем операторы на объявление кеша недействительным для соответствующей кеш-строки в приватном кеше отклоняются во время продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти.
10. Компьютерная система для обеспечения обработки в вычислительном окружении, содержащая память и взаимодействующий с памятью процессор, причем компьютерная система выполнена для осуществления способа, включающего:
- выявление того, содержит ли поле элемента управления доступом команды значение удержания, представляющее собой обозначение удержания для запроса операнда памяти последующей команды к местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, и
- по меньшей мере частичное управление обработкой последующей команды вычислительным устройством в зависимости от того, содержит ли поле элемента управления доступом команды значение удержания, причем указанное управление включает:
- выяснение того, находится ли состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, в исключительном распоряжении вычислительного устройства; и
- на основании выявления того, что запрос операнда памяти является назначенным к удержанию и что состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, находится в исключительном распоряжении, продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, причем продолжение удержания включает в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала.
11. Компьютерная система по п. 10, причем инициирование включает в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти и прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом после достижения счетчиком заданного интервала.
12. Компьютерная система по п. 11, причем длина заданного интервала зависит от типа доступа запроса операнда памяти и причем тип доступа входит в группу, состоящую из типа выборки, типа сохранения и типа обновления.
13. Компьютерная система по п. 12, причем длина заданного интервала является большей для типа сохранения и типа обновления, чем для типа выборки.
14. Компьютерная система по п. 11, причем заданный интервал выбран из группы, состоящей из основанного на времени интервала и основанного на циклах интервала.
15. Компьютерная система по п. 11, которая, кроме того, содержит выявление типа доступа запроса операнда памяти и на основании выявления того, что тип доступа является доступом типа выборки, прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом на основании достижения счетчиком заданного интервала.
16. Компьютерная система по п. 10, которая, кроме того, содержит выявление типа доступа запроса операнда памяти, и на основании типа доступа, являющегося типом сохранения или типом обновления, выявление того, является ли последующий запрос операнда памяти назначенным к разблокированию для соответствующей кеш-строки, и на основании того, что последующий запрос операнда памяти является назначенным к разблокированию, прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом.
17. Компьютерная система по п. 16, причем инициирование включает в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, а прекращение удержания соответствующей кеш-строки исключительным образом происходит при реализации более раннего из событий: достижения счетчиком заданного интервала или получения последующего назначенного к разблокированию запроса операнда памяти для соответствующей кеш-строки.
18. Компьютерная система по п. 10, причем операторы на объявление кеша недействительным для соответствующей кеш-строки в приватном кеше отклоняются во время продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти.
19. Компьютерно-реализуемый способ обеспечения обработки в вычислительном окружении, включающий:
- выявление процессором того, содержит ли поле элемента управления доступом команды значение удержания, представляющее собой обозначение удержания для запроса операнда памяти последующей команды к местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, и
- по меньшей мере частичное управление обработкой последующей команды вычислительным устройством в зависимости от того, содержит ли поле элемента управления доступом команды значение удержания, причем указанное управление включает:
- выяснение того, находится ли состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, в исключительном распоряжении вычислительного устройства; и
- на основании выявления того, что запрос операнда памяти является назначенным к удержанию и что состояние соответствующей кеш-строки в приватном кеше, используемом для обработки запроса операнда памяти, находится в исключительном распоряжении, продолжение удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, причем продолжение удержания включает в себя инициирование счетчика для обеспечения продолжения удержания на протяжении требуемого интервала.
20. Компьютерно-реализуемый способ по п. 19, причем инициирование включает в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти и прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом после после достижения счетчиком заданного интервала.
21. Компьютерно-реализуемый способ по п. 20, причем длина заданного интервала зависит от типа доступа запроса операнда памяти и причем тип доступа входит в группу, состоящую из типа выборки, типа сохранения и типа обновления.
22. Компьютерно-реализуемый способ по п. 21, причем длина заданного интервала является большей для типа сохранения и типа обновления, чем для типа выборки.
23. Компьютерно-реализуемый способ по п. 20, который, кроме того, содержит выявление типа доступа запроса операнда памяти и на основании выявления того, что тип доступа является доступом типа выборки, прекращения удержания соответствующей кеш-строки в приватном кеше исключительным образом на основании достижения счетчиком заданного интервала.
24. Компьютерно-реализуемый способ по п. 19, который, кроме того, содержит выявление типа доступа запроса операнда памяти, и на основании типа доступа, являющегося типом сохранения или типом обновления, выявление того, является ли последующий запрос операнда памяти назначенным к разблокированию для соответствующей кеш-строки, и на основании того, что последующий запрос операнда памяти является назначенным к разблокированию, прекращение удержания соответствующей кеш-строки в приватном кеше исключительным образом.
25. Компьютерно-реализуемый способ по п. 24, причем инициирование включает в себя инициирование заданного интервала для продолжения удержания соответствующей кеш-строки в приватном кеше исключительным образом после завершения обработки запроса операнда памяти, причем прекращение удержания соответствующей кеш-строки исключительным образом происходит при реализации более раннего из событий: достижения счетчиком заданного интервала или получения последующего назначенного к разблокированию запроса операнда памяти для соответствующей кеш-строки.
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
US 5175829 A, 29.12.1992 | |||
EP 1857927 A2, 21.11.2007 | |||
АДАПТИВНАЯ ОРГАНИЗАЦИЯ КЭША ДЛЯ ОДНОКРИСТАЛЬНЫХ МУЛЬТИПРОЦЕССОРОВ | 2009 |
|
RU2484520C2 |
Авторы
Даты
2020-08-21—Публикация
2018-01-03—Подача