[go: up one dir, main page]

RU2164037C2 - Address generation method - Google Patents

Address generation method Download PDF

Info

Publication number
RU2164037C2
RU2164037C2 RU98100774/09A RU98100774A RU2164037C2 RU 2164037 C2 RU2164037 C2 RU 2164037C2 RU 98100774/09 A RU98100774/09 A RU 98100774/09A RU 98100774 A RU98100774 A RU 98100774A RU 2164037 C2 RU2164037 C2 RU 2164037C2
Authority
RU
Russia
Prior art keywords
address
offset
elements
address space
format
Prior art date
Application number
RU98100774/09A
Other languages
Russian (ru)
Other versions
RU98100774A (en
Inventor
И.С. Гуркин
Original Assignee
Гуркин Илья Сергеевич
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Гуркин Илья Сергеевич filed Critical Гуркин Илья Сергеевич
Priority to RU98100774/09A priority Critical patent/RU2164037C2/en
Publication of RU98100774A publication Critical patent/RU98100774A/en
Application granted granted Critical
Publication of RU2164037C2 publication Critical patent/RU2164037C2/en

Links

Landscapes

  • Memory System (AREA)

Abstract

FIELD: computer engineering; program and data address generation. SUBSTANCE: prior to adding addressing space area address to that of position-indicating operand shift in this area amount of shift is computed by means of hardware cyclic shift in opposite direction through predetermined number of logic-shift bits. In this way arbitrary addressing of multidimensional array is attained. EFFECT: enlarged functional capabilities. 1 dwg

Description

Изобретение относится к вычислительной технике и может быть использовано в устройствах универсальных и специализированных цифровых вычислительных машин для формирования адресов программ и данных. The invention relates to computer technology and can be used in devices of universal and specialized digital computers to generate addresses of programs and data.

Известен способ формирования сегментированного адреса, заключающийся в том, что в каждой команде выделяют два отдельных поля адреса, используемых под номер сегмента и под номер байта внутри сегмента, определяют адрес сегмента и адрес байта и складывают полученные значения адресов. Этот способ для любых двух соседних элементов в произвольном измерении одномерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области некоторого адресного пространства, позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу. A known method of generating a segmented address is that in each command two separate address fields are used, used for the segment number and for the byte number inside the segment, the segment address and byte address are determined, and the obtained address values are added. This method for any two neighboring elements in an arbitrary dimension of a one-dimensional array, the set of elements of which is one-to-one mapping into the set of cells of an arbitrary region of a certain address space, allows one element to be addressed with the address of the other element, modified by one.

Однако данный способ для любых двух соседних элементов в произвольном измерении многомерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области некоторого адресного пространства, не позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу [1]. However, this method for any two neighboring elements in an arbitrary dimension of a multidimensional array, the set of elements of which is bijectively mapped to the set of cells of an arbitrary region of a certain address space, does not allow one element to be addressed with the address of the other element modified by one [1].

Известен способ формирования машинного адреса, заключающийся в том, что аппаратно циклически сдвигают на заданное число разрядов значение логического адреса, равное значению машинного адреса, циклически сдвинутому на это же заданное число разрядов, но в противоположном направлении сдвига. Этот способ для любых двух соседних элементов в произвольном измерении многомерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек фиксированной области некоторого адресного пространства, позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу. A known method of generating a machine address is that the value of the logical address is equal to the value of the machine address cyclically shifted by the same specified number of bits, but in the opposite direction of the shift, by hardware cyclically shifting by a given number of bits. This method for any two adjacent elements in an arbitrary dimension of a multidimensional array, the set of elements of which is one-to-one mapping into the set of cells of a fixed area of a certain address space, allows you to address one element with the address of the other element, modified by one.

Однако данный способ для любых двух соседних элементов в произвольном измерении многомерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области некоторого адресного пространства, не позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу [2]. However, this method for any two neighboring elements in an arbitrary dimension of a multidimensional array, the set of elements of which is one-to-one mapping into the set of cells of an arbitrary region of a certain address space, does not allow one element to be addressed with the address of the other element modified by one [2].

Известен способ формирования исполнительного адреса, заключающийся в том, что аппаратно складывают адрес области адресного пространства, в которой размещен операнд, и смещение, указывающее положение этого операнда относительно начала данной области адресного пространства. Этот способ для любых двух соседних элементов одномерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области некоторого адресного пространства, позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу. A known method of generating an executive address is that the address of the address space region in which the operand is located and the offset indicating the position of this operand relative to the beginning of this address space region are folded in hardware. This method for any two adjacent elements of a one-dimensional array, the set of elements of which is one-to-one mapping into the set of cells of an arbitrary region of a certain address space, allows one element to be addressed with the address of the other element, modified by one.

Однако данный способ для любых двух соседних элементов в произвольном измерении многомерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области некоторого адресного пространства, не позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу [3]. However, this method for any two neighboring elements in an arbitrary dimension of a multidimensional array, the set of elements of which is one-to-one mapping into the set of cells of an arbitrary region of a certain address space, does not allow addressing one element with the address of another element modified by one [3].

Наиболее близким техническим решением к описываемому изобретению является способ формирования исполнительного адреса, заключающийся в том, что аппаратно складывают адрес области адресного пространства, в которой размещен операнд, и смещение, указывающее положение этого операнда относительно начала данной области адресного пространства. Этот способ для любых двух соседних элементов одномерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области некоторого адресного пространства, позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу. The closest technical solution to the described invention is a method of generating an executive address, which consists in adding up the address of the address space region in which the operand is located and the offset indicating the position of this operand relative to the beginning of this address space region. This method for any two adjacent elements of a one-dimensional array, the set of elements of which is one-to-one mapping into the set of cells of an arbitrary region of a certain address space, allows one element to be addressed with the address of the other element, modified by one.

Данный способ для любых двух соседних элементов в произвольном измерении многомерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области некоторого адресного пространства, не позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу [3]. This method for any two neighboring elements in an arbitrary dimension of a multidimensional array, the set of elements of which is one-to-one mapping into the set of cells of an arbitrary region of a certain address space, does not allow one element to be addressed with the address of the other element modified by one [3].

Целью изобретения является расширение возможностей способа. The aim of the invention is to expand the capabilities of the method.

Поставленная цель достигается тем, что в способе формирования исполнительного адреса, заключающемся в том, что аппаратно складывают адрес области адресного пространства, в которой размещен операнд, и смещение, указывающее положение этого операнда относительно начала данной области адресного пространства, перед сложением адреса области адресного пространства и смещения вычисляют смещение путем аппаратного циклического сдвига на заданное число разрядов значения логического смещения, равного значению смещения, циклически сдвинутому на это же заданное число разрядов, но в противоположном направлении сдвига. This goal is achieved by the fact that in the method of forming the executive address, which consists in hardware adding the address of the address space region in which the operand is located, and an offset indicating the position of this operand relative to the beginning of this address space region, before adding the address of the address space region and offsets calculate the offset by a hardware cyclic shift by a given number of bits of the value of the logical offset equal to the offset value cyclically shifted and the same predetermined number of bits, but in the opposite direction of shift.

Для раскрытия сущности предлагаемого изобретения особый интерес представляют два вида организации виртуальной памяти: страничная и сегментная и соответственно два способа управления виртуальной памятью: управление страничной памятью по запросам и управление сегментной памятью. To disclose the essence of the present invention, two types of virtual memory organization are of particular interest: page and segment and, accordingly, two methods of managing virtual memory: managing page memory by requests and managing segment memory.

При страничной организации памяти адресное пространство каждого задания делится на равные части, называемые страницами, и подобным образом физическая память делится на части одинакового размера, называемые блоками. При наличии соответствующих аппаратных средств преобразования любая страница может быть помещена в любой блок. Что же касается аппаратных средств, осуществляющих отображение адресного пространства на физическую память, то для каждой страницы должен быть предусмотрен специальный регистр; эти регистры в совокупности образуют таблицу переадресации страниц или таблицу страниц и могут либо представлять собой специальные аппаратные регистры, либо занимать часть основной памяти. With paging, the address space of each job is divided into equal parts, called pages, and in a similar way, physical memory is divided into pieces of the same size, called blocks. With the appropriate conversion hardware, any page can be placed in any block. As for the hardware that maps the address space to physical memory, a special register must be provided for each page; these registers together form a page redirect table or page table and can either be special hardware registers or occupy part of the main memory.

Особенностью рассматриваемой страничной организации виртуальной памяти является управление страничной памятью по запросам, обусловленное отказом от требования, чтобы все адресное пространство задания одновременно находилось в основной памяти; вместо этого в память загружается только часть адресного пространства, а при попытке обращения к странице, отсутствующей в основной памяти, аппаратно генерируется страничное прерывание. Обработка этого прерывания должна заключаться в загрузке требуемой страницы в память и корректировке соответствующим образом элементов таблицы страниц. Прерванная команда после этого может быть повторена. A feature of the considered page organization of virtual memory is the management of page memory by requests, due to the rejection of the requirement that the entire address space of the job was simultaneously in the main memory; instead, only part of the address space is loaded into the memory, and when trying to access a page that is not in the main memory, a page interrupt is generated by hardware. Processing this interrupt should consist of loading the required page into memory and adjusting the page table elements accordingly. An interrupted command can then be repeated.

Сегментная организация находит широкое применение в модульном программировании, при котором с целью упрощения понимания, написания и контроля программы и отдельных ее частей для реализации каждой функции используется отдельный программный модуль. Сегмент может быть определен как логическая группа информации, такая как программа, массив или область данных. Таким образом, адресное пространство каждого задания представляется в виде совокупности сегментов. Сегментация и является методом управления этими сегментами, который может быть реализован с помощью аппарата преобразования адресов, подобного механизму преобразования адресов, используемому в системах со страничной организацией памяти. Segment organization is widely used in modular programming, in which, in order to simplify the understanding, writing and control of a program and its individual parts, a separate program module is used to implement each function. A segment can be defined as a logical group of information, such as a program, array, or data region. Thus, the address space of each job is represented as a set of segments. Segmentation is a method for managing these segments, which can be implemented using an address translation apparatus similar to the address translation mechanism used in systems with paging memory.

Одним из способов формирования сегментированного адреса является представление адресного пространства как двумерного, адресуемого двумя компонентами: номером сегмента и номером байта. Преобразование двумерного сегментированного адреса в адрес линейной физической памяти осуществляется автоматически во время выполнения программы. Вычисление физического адреса при данном подходе сводится к сложению адреса области памяти, занимаемой сегментом, и смещения, определяющего положение операнда внутри сегмента. Данный способ формирования адреса физической памяти применим и для сегментно-страничного распределения памяти, сохраняющего достоинства сегментации и повышающего эффективность использования памяти, заключающегося в объединении двух схем распределения памяти - страничного распределения и распределения сегментами. Сегмент можно представить не как нечто единое и непрерывное, а как совокупность страниц или подсегментов. В этом случае способ формирования адреса физической памяти может быть легко сведен к сложению адреса области памяти, занимаемой подсегментом, и смещения, определяющего положение операнда внутри подсегмента. One way to create a segmented address is to represent the address space as two-dimensional, addressed by two components: segment number and byte number. Conversion of a two-dimensional segmented address into an address of a linear physical memory is carried out automatically during program execution. The calculation of the physical address in this approach reduces to adding up the address of the memory area occupied by the segment and the offset determining the position of the operand inside the segment. This method of forming a physical memory address is also applicable for segmented-paginal distribution of memory, which preserves the advantages of segmentation and increases the efficiency of memory use, which consists in combining two memory allocation schemes - pagination and segment allocation. A segment can be presented not as something single and continuous, but as a collection of pages or sub-segments. In this case, the method of generating the address of the physical memory can be easily reduced to adding up the address of the memory area occupied by the subsegment and the offset defining the position of the operand inside the subsegment.

Данный способ формирования адреса позволяет решать проблемы, возникающие при адресации элементов одномерного массива, отображенных на множество ячеек некоторого адресного пространства, но для любых двух соседних элементов в произвольном измерении многомерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области этого адресного пространства, не позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу. This method of generating an address allows you to solve problems that arise when addressing elements of a one-dimensional array mapped to many cells of a certain address space, but for any two neighboring elements in an arbitrary dimension of a multidimensional array, many of which are one-to-one mapped into many cells of an arbitrary region of this address space, does not allow to address one element with the address of another element, modified by one.

Как известно, адрес любого элемента Q-мерного массива может быть представлен в двоичной разрядной сетке совокупностью Q векторов, для которых справедливо утверждение, что значение q-го вектора определяется значением q-го индекса. Формат адреса элемента Q-мерного массива может быть задан Q! способами, отличающимися порядком расположения векторов, и, по крайней мере, Q способами, при которых младшие разряды адреса, представленного в q-м формате, соответствуют q-му вектору. Каждому q-му формату адреса может быть поставлен в соответствие базовый формат адреса, в качестве которого может быть выбран любой из Q! форматов адреса. При этом каждый формат адреса предполагает определенную организацию данных в ячейках некоторого адресного пространства, а каждое установленное соответствие между q-м и базовым форматами адреса предполагает отображение одной организации данных в ячейках этого адресного пространства в другую и задает q-ю структуру хранения. Для реализации q-й структуры данных, включающей выбор q-й структуры хранения, достаточно преобразовать q-й формат адреса в базовый формат адреса. Функция, описывающая преобразование некоторого q-го формата адреса в базовый формат адреса, может быть представлена в табличном виде и реализована аппаратно. Очевидно также, что, если q-й формат адреса может быть получен в результате циклического сдвига вправо адреса, представленного в базовом формате, то q-я структура данных может быть реализована функцией циклического сдвига влево адреса, представленного в q-м формате, на число разрядов адреса, определяемое номером разряда адреса, представленного в базовом формате, соответствующим младшему разряду q-го вектора. Так как младшему разряду q-го вектора может соответствовать любой номер разряда адреса, представленного в базовом формате, то для реализации q-й структуры данных, как известно, достаточно аппаратно реализовать функцию циклического сдвига адреса, аргументом которой является число разрядов, на которое сдвигается адрес. As you know, the address of any element of a Q-dimensional array can be represented in a binary bit grid by a set of Q vectors for which it is true that the value of the qth vector is determined by the value of the qth index. The format of the address of an element of a Q-dimensional array can be specified by Q! in ways that differ in the order of the vectors, and at least in Q ways in which the least significant bits of the address represented in the qth format correspond to the qth vector. Each qth address format can be associated with a basic address format, any of which can be selected as Q! address formats. In this case, each address format assumes a certain organization of data in the cells of a certain address space, and each established correspondence between the qth and basic address formats assumes a mapping of one data organization in the cells of this address space to another and sets the qth storage structure. To implement the qth data structure, including the choice of the qth storage structure, it is enough to convert the qth address format to the base address format. The function that describes the conversion of some q-th address format to the base address format can be represented in a table form and implemented in hardware. It is also obvious that if the qth format of the address can be obtained as a result of a cyclic right shift of the address represented in the basic format, then the qth data structure can be implemented by the function of cyclic left shift of the address represented in the qth format by a number bits of the address, determined by the number of bits of the address, presented in the basic format corresponding to the least significant bit of the qth vector. Since the lowest bit of the qth vector can correspond to any bit number of the address presented in the basic format, for the qth data structure to be implemented, as you know, it is enough to implement the function of cyclic shift of the address, the argument of which is the number of bits to which the address is shifted .

Поскольку фиксированное упорядоченное множество объектов и отношения между ними образуют структуру, а в качестве объектов структуры могут рассматриваться ячейки некоторого адресного пространства, то для изменения структуры этого адресного пространства достаточно изменить способ упорядочения адресных разрядов в двоичной разрядной сетке, в которой может быть представлено множество адресов всех ячеек рассматриваемого адресного пространства, а для изменения структуры адресного пространства некоторого устройства достаточно изменить способ упорядочения адресных выходов этого устройства. Since a fixed ordered set of objects and relations between them form a structure, and cells of a certain address space can be considered as structure objects, to change the structure of this address space it is enough to change the way of ordering address bits in a binary bit grid, in which many addresses of all can be represented cells of the address space in question, and to change the structure of the address space of a device is enough to change a way to organize the address outputs of this device.

Аппаратная реализация функции циклического сдвига адреса на произвольное заданное число разрядов является ключевым звеном способа формирования машинного адреса, заключающегося в том, что аппаратно циклически сдвигают на заданное число разрядов значение логического адреса, равное значению машинного адреса, циклически сдвинутому на это же заданное число разрядов, но в противоположном направлении сдвига. Поскольку сегмент может быть определен как логическая единица информации, представляющая собой многомерный массив данных, а способ формирования машинного адреса для любых двух соседних элементов в произвольном измерении многомерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек фиксированной области некоторого адресного пространства, позволяет адресовать один элемент адресом другого элемента, модифицированным на единицу, то для того, чтобы для любых двух соседних элементов в произвольном измерении многомерного массива, множество элементов которого взаимно однозначно отображается в множество ячеек произвольной области некоторого адресного пространства, адресовать один элемент адресом другого элемента, модифицированным на единицу, достаточно в способе формирования исполнительного адреса, заключающемся в том, что аппаратно складывают адрес области адресного пространства, в которой размешен операнд, и смещение, указывающее положение операнда относительно начала данной области адресного пространства, перед сложением адреса области адресного пространства и смещения вычислить смещение путем аппаратного циклического сдвига на заданное число разрядов значения логического смещения, равного значению смещения, циклически сдвинутому на это же заданное число разрядов, но в противоположном направлении сдвига. При этом логическое смещение и смещение могут соотноситься между собой так же, как и логический адрес и машинный адрес в известном способе формирования машинного адреса, представленные соответственно в q-м и базовом форматах. Аналогично, формат смещения может быть определен как базовый формат, а формат логического смещения - как q-й рабочий формат или просто как рабочий формат. Следовательно, логическое смещение и смещение могут различаться между собой форматами смещения, т. е. способами упорядочения векторов, заданных значениями индексов элемента многомерного массива данных. Таким образом, элемент многомерного массива данных, множество элементов которого взаимно однозначно отображается в множество ячеек области некоторого адресного пространства, может быть идентифицирован различными логическими адресами, каждый из которых может быть вычислен в результате сложения адреса данной области адресного пространства, и соответствующего логического смещения. The hardware implementation of the function of cyclic shift of the address by an arbitrary specified number of bits is a key element in the method of generating a machine address, which consists in the fact that a hardware logical value cyclically shifted by a specified number of bits is equal to the value of the machine address cyclically shifted by the same specified number of bits, but in the opposite direction of the shift. Since a segment can be defined as a logical unit of information, which is a multidimensional data array, and the method of generating a machine address for any two adjacent elements in an arbitrary dimension of a multidimensional array, the set of elements of which can be mapped uniquely into the set of cells in a fixed area of a certain address space, allows one element by the address of another element, modified by one, so that for any two adjacent elements in an arbitrary When measuring a multidimensional array, the set of elements of which is one-to-one mapping into the set of cells of an arbitrary region of a certain address space, it is enough to address one element by the address of another element, modified by one, in the method of generating the executive address, which consists in adding up the address of the address space region in hardware which contains the operand, and the offset indicating the position of the operand relative to the beginning of this area of the address space, before adding a In the area of address space and offset, calculate the offset by hardware cyclic shift by a given number of bits of the value of the logical offset equal to the offset value cyclically shifted by the same specified number of bits, but in the opposite direction of the shift. In this case, the logical offset and offset can be related to each other in the same way as the logical address and the machine address in the known method of generating the machine address, presented respectively in the qth and basic formats. Similarly, an offset format can be defined as a base format, and a logical offset format can be defined as the qth working format or simply as a working format. Therefore, the logical bias and the bias can differ among themselves by the bias formats, i.e., by the methods of ordering the vectors given by the index values of the element of the multidimensional data array. Thus, an element of a multidimensional data array, the set of elements of which can be mapped uniquely into the set of cells in a region of a certain address space, can be identified by various logical addresses, each of which can be calculated by adding the address of this region of the address space and the corresponding logical bias.

Предлагаемый способ формирования адреса позволяет использовать дополнительные возможности при адресации соседних элементов многомерного массива, заключающиеся в таком взаимно однозначном отображении множества элементов этого массива в множество ячеек произвольной области некоторого адресного пространства, при котором адрес произвольного элемента многомерного массива может быть вычислен в результате инкрементирования или декрементирования адреса соседнего элемента в произвольном измерении этого массива, что позволяет повысить эффективность вычисления адресов элементов многомерных массивов, а также производительность вычислительных систем, реализующих предлагаемый способ формирования адреса и функции инкрементирования, декрементирования или функции обработки цепочек данных. The proposed method of generating the address allows you to use additional features when addressing neighboring elements of a multidimensional array, which consist in such a one-to-one mapping of the set of elements of this array into the set of cells of an arbitrary region of a certain address space, in which the address of an arbitrary element of a multidimensional array can be calculated by incrementing or decrementing the address neighboring element in an arbitrary dimension of this array, which allows to increase the efficiency of computing the addresses of elements of multidimensional arrays, as well as the performance of computing systems that implement the proposed method of generating the address and the function of incrementing, decrementing, or the function of processing data chains.

На чертеже приведена схема формирования адреса, отображающая пример реализации предлагаемого изобретения, в котором для вычисления значения смещения используется шифратор, реализующий функцию аппаратного циклического сдвига значения логического смещения на произвольное заданное число разрядов. The drawing shows a diagram of the formation of the address, showing an example implementation of the invention, in which to calculate the bias value, an encoder is used that implements the function of the hardware cyclic shift of the logical bias value by an arbitrary specified number of bits.

Предлагаемый способ формирования адреса реализован следующим образом. The proposed method of forming the address is implemented as follows.

Возможности, предоставляемые данным изобретением, в наиболее полной мере могут быть использованы при адресации элементов цепочки данных, состоящей из последовательности элементов в произвольном измерении многомерного массива, т. е. элементов цепочки данных, взаимно однозначно отображенных в множество элементов в произвольном измерении многомерного массива. При этом изначально известно измерение многомерного массива, в котором в множество элементов этого массива отображаются элементы цепочки данных, и значения индексов элемента многомерного массива, в который отображается первый элемент цепочки данных. Кроме того, для наиболее полного использования возможностей, предоставляемых предлагаемым изобретением, понадобится выполнить ряд подготовительных шагов. The possibilities provided by this invention can be used to the fullest extent when addressing elements of a data chain consisting of a sequence of elements in an arbitrary dimension of a multidimensional array, i.e., elements of a data chain that are one-to-one mapped into a set of elements in an arbitrary dimension of a multidimensional array. In this case, the dimension of a multidimensional array is initially known, in which the elements of the data chain are displayed in the set of elements of this array, and the index values of the element of the multidimensional array into which the first element of the data chain is displayed. In addition, to make the most of the opportunities offered by the invention, you will need to perform a number of preparatory steps.

Сначала необходимо множество элементов этого массива взаимно однозначно отобразить в множество ячеек оперативной памяти вычислительного устройства, в котором реализовано рассматриваемое изобретение. Ввиду того, что ситуация, при которой размер свободной области оперативной памяти не позволяет разместить в ней определенный массив данных, может быть разрешена с использованием методов управления памятью и, в конечном счете, не влияет на предлагаемый способ формирования адреса, то при рассмотрении этого способа можно ограничиться случаем, когда в оперативной памяти может быть выделена свободная область достаточного размера для размещения в ней данного многомерного массива. Установленное взаимно однозначное соответствие между множеством элементов многомерного массива и множеством ячеек оперативной памяти означает, что известны адрес выделенной области памяти и базовый формат смещения. First, it is necessary to map the many elements of this array in a one-to-one manner into the many cells of the RAM of the computing device in which the invention is implemented. Due to the fact that the situation in which the size of the free area of RAM does not allow you to place a certain data array in it can be resolved using memory management methods and, ultimately, does not affect the proposed method of generating the address, when considering this method, you can confine ourselves to the case when a free area of sufficient size can be allocated in RAM to accommodate this multidimensional array. The established one-to-one correspondence between the set of elements of a multidimensional array and the set of random access memory cells means that the address of the allocated memory area and the basic offset format are known.

Затем определяют все рабочие форматы логического смещения, которые только можно получить, циклически сдвигая вправо векторы базового формата смещения, и выбирают рабочий формат логического смещения, младшие разряды которого занимает вектор, задающий индекс выбранного измерения многомерного массива (т. е. измерения, в котором в элементы массива отображаются элементы цепочки данных). Then determine all the working formats of the logical bias that can only be obtained by cyclically shifting the vectors of the basic bias format to the right, and select the working format of the logical bias, the lower digits of which are occupied by a vector defining the index of the selected dimension of the multidimensional array (i.e., the dimension in which array elements display data chain elements).

В следующем шаге определяют число разрядов, на которое следует циклически сдвинуть вправо базовый формат смещения, чтобы получить выбранный в предыдущем шаге рабочий формат логического смещения. Полученное значение задает число разрядов, на которое необходимо циклически сдвинуть влево значение логического смещения, чтобы вычислить значение смещения в базовом формате. In the next step, the number of bits is determined by which the basic bias format should be cyclically shifted to the right to get the logical bias format selected in the previous step. The resulting value sets the number of bits by which it is necessary to cyclically shift the logical offset value to the left in order to calculate the offset value in the basic format.

Перечисленные действия могут быть учтены на этапе написания исходной программы и реализованы в процессе подготовки данной программы к выполнению, включая процесс загрузки в оперативную память. The listed actions can be taken into account at the stage of writing the initial program and implemented in the process of preparing this program for execution, including the process of loading into RAM.

Для того, чтобы сформировать адрес для адресации первого элемента цепочки данных в выбранном измерении многомерного массива аппаратно циклически сдвигают влево на предварительно определенное заданное число разрядов значение логического смещения и полученное в результате циклического сдвига значение смещения складывают со значением адреса выделенной области памяти. In order to form an address for addressing the first element of the data chain in the selected dimension of a multidimensional array, the hardware bias value is shifted to the left by a predetermined specified number of bits and the offset value obtained as a result of the cyclic shift is added to the address value of the allocated memory area.

Для того, чтобы сформировать адрес для адресации следующего элемента цепочки данных в выбранном измерении многомерного массива аппаратно циклически сдвигают влево на то же предварительно определенное заданное число разрядов инкрементированное (если адрес первого элемента цепочки данных совпадает с адресом цепочки данных) или декрементированное (если адрес последнего элемента цепочки данных совпадает с адресом цепочки данных) значение логического смещения, использованное при формировании адреса для адресации предыдущего элемента цепочки данных, и полученное в результате циклического сдвига значение смещения складывают со значением адреса выделенной области памяти. In order to generate an address for addressing the next element of the data chain in the selected dimension of a multidimensional array, the device is cyclically shifted left by the same predefined specified number of bits incremented (if the address of the first element of the data chain matches the address of the data chain) or decremented (if the address of the last element data chain matches the address of the data chain) logical offset value used in the formation of the address for addressing the previous element data stream, and the offset value obtained as a result of a cyclic shift is added to the address value of the allocated memory area.

Таким образом, при адресации элементов цепочки данных, состоящей из последовательности элементов в произвольном измерении многомерного массива, взаимно однозначно отображенного в множество некоторой произвольной области памяти, рассматриваемое изобретение позволяет вычислять значение логического смещения для каждого следующего элемента цепочки данных путем инкрементирования или декрементирования значения логического смещения, использованного для адресации предыдущего элемента этой цепочки данных, что позволяет для любых двух соседних элементов в произвольном измерении данного многомерного массива адресовать один элемент адресом другого элемента, модифицированным на единицу. Thus, when addressing the elements of a data chain consisting of a sequence of elements in an arbitrary dimension of a multidimensional array that is one-to-one mapped into a set of some arbitrary memory region, the considered invention allows one to calculate the value of the logical bias for each subsequent element of the data chain by incrementing or decrementing the value of the logical bias, used to address the previous element of this data chain, which allows for any two s of neighboring elements in an arbitrary dimension of a given multidimensional array, address one element with the address of another element modified by one.

Источники информации
1. Мэдник С., Донован Дж. Операционные системы. - М.: Мир, 1978, с. 217 - 218.
Sources of information
1. Madnik S., Donovan J. Operating Systems. - M .: Mir, 1978, p. 217 - 218.

2. Патент N 2092912 на изобретение "Запоминающее устройство с переключаемой структурой", RU. 2. Patent N 2092912 for the invention of "Storage device with switchable structure", RU.

3. Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера. - М.: Радио и связь, 1989, с. 18 - 19, рис. 1.1 (прототип). 3. Scanlon L. Personal computers IBM PC and XT. Programming in assembly language. - M.: Radio and Communications, 1989, p. 18 - 19, fig. 1.1 (prototype).

Claims (1)

Способ формирования исполнительного адреса, заключающийся в том, что складывают адрес области адресного пространства, в которой размещен операнд, и смещение, указывающее положение этого операнда относительно начала данной области адресного пространства, отличающийся тем, что перед сложением адреса области адресного пространства и смещения вычисляют смещение путем циклического сдвига логического смещения на заданное число разрядов, причем представленный в двоичной разрядной сетке совокупностью одного или более векторов, используемых соответственно для задания значений индексов элементов массива с одним или более измерениями, формат логического смещения соответствует формату вычисляемого смещения, циклически сдвинутому на это же заданное число разрядов в направлении, противоположном направлению сдвига логического смещения. The method of generating the executive address, which consists in adding up the address of the address space region in which the operand is located and the offset indicating the position of this operand relative to the beginning of this address space region, characterized in that before adding the address of the address space region and the offset, the offset is calculated by a cyclic shift of the logical bias by a given number of bits, moreover, represented in a binary bit grid by a combination of one or more vectors, we use x values respectively for setting the index of the array element with one or more dimensions, the format corresponds to the format of the logical offset calculated offset cyclically shifted to the same predetermined number of digits in the opposite direction to shift a logical offset.
RU98100774/09A 1998-01-20 1998-01-20 Address generation method RU2164037C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU98100774/09A RU2164037C2 (en) 1998-01-20 1998-01-20 Address generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU98100774/09A RU2164037C2 (en) 1998-01-20 1998-01-20 Address generation method

Publications (2)

Publication Number Publication Date
RU98100774A RU98100774A (en) 1999-11-20
RU2164037C2 true RU2164037C2 (en) 2001-03-10

Family

ID=20201246

Family Applications (1)

Application Number Title Priority Date Filing Date
RU98100774/09A RU2164037C2 (en) 1998-01-20 1998-01-20 Address generation method

Country Status (1)

Country Link
RU (1) RU2164037C2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4615006A (en) * 1980-06-06 1986-09-30 Nippon Electric Co., Ltd. Physical address developing unit
RU2010317C1 (en) * 1990-07-20 1994-03-30 Институт точной механики и вычислительной техники им.С.А.Лебедева РАН Buffer memory control unit
RU2092912C1 (en) * 1993-07-02 1997-10-10 Илья Сергеевич Гуркин Memory unit which has commutation structure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4615006A (en) * 1980-06-06 1986-09-30 Nippon Electric Co., Ltd. Physical address developing unit
RU2010317C1 (en) * 1990-07-20 1994-03-30 Институт точной механики и вычислительной техники им.С.А.Лебедева РАН Buffer memory control unit
RU2092912C1 (en) * 1993-07-02 1997-10-10 Илья Сергеевич Гуркин Memory unit which has commutation structure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
СКЭНЛОН Л. Персональные ЭВМ IBM PC и ХТ. Программирование на языке ассемблера. - М.: Радио и связь, 1989, с.18-19. МЭДНИК С. и др. Операционные системы. - М.: Мир, 1978, с.217-218. *

Similar Documents

Publication Publication Date Title
US4051551A (en) Multidimensional parallel access computer memory system
US3996559A (en) Method and apparatus for accessing horizontal sequences, vertical sequences and regularly spaced rectangular subarrays from an array stored in a modified word organized random access memory system
US3916387A (en) Directory searching method and means
US4086628A (en) Directory generation system having efficiency increase with sorted input
US3461434A (en) Stack mechanism having multiple display registers
US3938102A (en) Method and apparatus for accessing horizontal sequences and rectangular sub-arrays from an array stored in a modified word organized random access memory system
US4667308A (en) Multi-dimensional-access memory system with combined data rotation and multiplexing
US3995253A (en) Method and apparatus for accessing horizontal sequences, vertical sequences, and rectangular subarrays from an array stored in a modified word organized random access memory system
US4090174A (en) Method and apparatus for accessing horizontal sequences, vertical sequences and rectangular subarrays from an array stored in a modified word organized random access memory system
WO1995034155A2 (en) A method for storing and retrieving data and a memory arrangement
US5949429A (en) Method for performing pixel addressing operations for a tiled image
US4939642A (en) Virtual bit map processor
US4296468A (en) Address conversion unit for data processing system
US7313645B2 (en) Processor to reduce data rearrangement instructions for matrices in multiple memory banks
Park Multiaccess memory system for attached SIMD computer
US4570236A (en) Multi-dimensional parallel storage device
US6950843B2 (en) Multi-dimensional Fourier transform parallel processing method for shared memory type scalar parallel computer
JPH06162227A (en) Vector parallel computer
US5008852A (en) Parallel accessible memory device
RU2164037C2 (en) Address generation method
US5900023A (en) Method and apparatus for removing power-of-two restrictions on distributed addressing
JP2814860B2 (en) Image scaling device
Nodine et al. Paradigms for optimal sorting with multiple disks
EP0201174B1 (en) Method and apparatus for addressing a memory
Harper A multiaccess frame buffer architecture

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20050121