RU2037215C1 - Storage device - Google Patents
Storage device Download PDFInfo
- Publication number
- RU2037215C1 RU2037215C1 SU4908378A RU2037215C1 RU 2037215 C1 RU2037215 C1 RU 2037215C1 SU 4908378 A SU4908378 A SU 4908378A RU 2037215 C1 RU2037215 C1 RU 2037215C1
- Authority
- RU
- Russia
- Prior art keywords
- inputs
- outputs
- output
- input
- block
- Prior art date
Links
- 239000000126 substance Substances 0.000 abstract 1
- 210000004027 cell Anatomy 0.000 description 79
- 230000006378 damage Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 230000015572 biosynthetic process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
Description
Изобретение относится к вычислительной технике и может быть применено при построении памяти для хранения, записи и чтения как простых (скаляр, вектор, элемент вектора и т. д.), так и сложных структур данных (дерево, сеть, кортеж и т. д.) в ЭВМ различных классов. The invention relates to computer technology and can be used to build memory for storing, writing and reading both simple (scalar, vector, vector element, etc.) and complex data structures (tree, network, tuple, etc.) ) in computers of various classes.
Известно запоминающее устройство [1] обеспечивающее запись информации в накопитель и одновременное считывание нескольких слов, что в общем случае предполагает возможность его использования для хранения сложных структур данных. Однако это устройство имеет ограниченные функциональные возможности, большие аппаратные затраты и низкое быстродействие, при его применении для записи, хранения и одновременной выдачи нескольких, например, m слов. A memory device [1] is known for recording information in a drive and simultaneously reading several words, which in the general case suggests the possibility of its use for storing complex data structures. However, this device has limited functionality, high hardware costs and low speed, when used for recording, storage and simultaneous issuance of several, for example, m words.
При одновременном считывании m слов (в данном случае необходимо осуществить считывание информации из m ячеек памяти) устройство должно иметь m групп дешифраторов адреса считывания, m групп регистров адресов считывания, соответственно m регистров считываемых данных и усложненную схему блока сравнения адресов, что приводит в целом к большим аппаратным затратам. Кроме того, одновременное наличие m слов при чтении информации требует увеличения общего количества ячеек памяти (по сравнению с памятью, где хранят одно слово) в m раз, что соответственно увеличивает длину разрядных шин внутри матрицы ячеек памяти и тем самым снижает быстродействие устройства. While reading m words (in this case, it is necessary to read information from m memory cells), the device must have m groups of decoders of read addresses, m groups of registers of read addresses, respectively m of registers of read data and a complicated circuit of the address comparison unit, which generally leads to high hardware costs. In addition, the simultaneous presence of m words when reading information requires an increase in the total number of memory cells (compared with the memory where one word is stored) by m times, which accordingly increases the length of the bit buses inside the matrix of memory cells and thereby reduces the speed of the device.
При этом запись m слов требует реализации m циклов записи, что приводит к низкому эквивалентному быстродействию устройства в режиме записи. Moreover, recording m words requires the implementation of m recording cycles, which leads to a low equivalent speed of the device in recording mode.
Известно запоминающее устройство [2] для упорядоченного хранения, записи и выдачи информации по безадресному принципу, содержащее ячейки памяти, каждая из которых для хранения одного разряда содержит основной и дополнительный элементы памяти, семь элементов И, четыре элемента ИЛИ, два элемента задержки, а также восемь элементов И, один элемент ИЛИ, которые объединены в группы, предназначенные для управления считыванием и очередностью записи информации. A memory device [2] is known for orderly storage, recording and delivery of information on a non-address basis, containing memory cells, each of which for storing one bit contains primary and secondary memory elements, seven AND elements, four OR elements, two delay elements, and eight AND elements, one OR element, which are combined into groups designed to control the reading and recording order of information.
Запись информации в таком устройстве осуществляют в двух режимах ("Сверху вниз" и "Снизу вверх") в первую свободную ячейку, а чтение в четырех режимах: "Магазин", "Бобслей", "Перевернутый магазин", "Перевернутый бобслей". Information is recorded in such a device in two modes ("Top Down" and "Bottom Up") in the first free cell, and reading in four modes: "Shop", "Bobsleigh", "Inverted Shop", "Inverted Bobsleigh".
Недостатком такого устройства является большая сложность накопителя из-за необходимости применения для одного разряда двойных элементов памяти, большого количества элементов И, элементов ИЛИ, схем задержки, что неприемлемо для построения памяти, хранящей сложные структуры данных, так как количество разрядов такой памяти велико и составляет несколько десятков бит. При этом из-за наличия значительного количества указанных элементов для реализации доступа к элементам памяти быстродействие такой памяти и полезная информационная емкость накопителя, реализованного на БИС, не могут быть обеспечены высокими. The disadvantage of this device is the great complexity of the drive due to the need to use double memory elements for a single bit, a large number of AND elements, OR elements, delay circuits, which is unacceptable for constructing a memory that stores complex data structures, since the number of bits of such memory is large and amounts to several dozen bits. Moreover, due to the presence of a significant number of these elements for realizing access to the memory elements, the speed of such memory and the useful information capacity of the drive implemented on the LSI cannot be ensured high.
Кроме того, оба рассмотренных устройства не обеспечивают аппаратной поддержки работы со сложными структурами данных (кортеж, дерево, сеть и т. п. ), т. е. функциональные возможности этих устройств весьма ограничены. In addition, both considered devices do not provide hardware support for working with complex data structures (tuple, tree, network, etc.), i.e., the functionality of these devices is very limited.
Известно запоминающее устройство, предназначенное для записи, хранения и чтения пакетов информации, состоящих из m полей (слов). Указанное устройство принято в качестве прототипа. Устройство содержит блок считывания, блок записи, входной и выходной регистры данных, блок управления, накопитель, каждая ячейка которого содержит регистры с первого по четвертый, первый и второй узлы сравнения, первый и второй элементы "ИЛИ", элемент "И", первый и второй узлы формирования и хранения флагов. A memory device is known for recording, storing and reading packets of information consisting of m fields (words). The specified device is adopted as a prototype. The device contains a reading unit, a writing unit, input and output data registers, a control unit, a drive, each cell of which contains registers from first to fourth, first and second comparison nodes, the first and second elements "OR", the element "AND", the first and the second nodes of the formation and storage of flags.
Указанные структурные элементы соединены между собой соответствующими связями. При этом информационные входы соответствующих регистров всех ячеек накопителя объединены и соединены соответственно с выходами первой, третьей, пятой и шестой групп входного регистра данных, информационные входы которого являются одноименными входами устройства. Вход синхронизации входного регистра данных соединен с первым выходом блока управления, а первые выходы соответствующих регистров ячеек накопителя объединены и соединены соответственно с информационными входами первой, третьей, пятой и шестой групп выходного регистра данных, выходы которого являются информационными выходами устройства. Вход синхронизации выходного регистра данных соединен с вторым выходом блока управления. Выходы блока записи соединены с первыми входами задания режима соответствующих регистров ячеек накопителя, а выходы блока считывания соединены с вторыми входами задания режима соответствующих регистров ячеек накопителя. These structural elements are interconnected by appropriate bonds. In this case, the information inputs of the respective registers of all the cells of the drive are combined and connected respectively with the outputs of the first, third, fifth and sixth groups of the input data register, the information inputs of which are the inputs of the same name. The synchronization input of the input data register is connected to the first output of the control unit, and the first outputs of the corresponding registers of the cells of the drive are combined and connected respectively to the information inputs of the first, third, fifth and sixth groups of the output data register, the outputs of which are information outputs of the device. The synchronization input of the output data register is connected to the second output of the control unit. The outputs of the recording unit are connected to the first inputs of the job mode corresponding to the registers of the cells of the drive, and the outputs of the read unit are connected to the second inputs of the job mode of the corresponding cell registers of the drive.
Первые входы задания режима узлов формирования и хранения флагов соединены с соответствующими выходами блока записи. Вторые входы задания режима узлов формирования и хранения ячеек накопителя соединены с соответствующими выходами блока считывания. Информационные входы узлов формирования и хранения флагов ячеек накопителя объединены и соединены соответственно с выходами второй и четвертой групп входного регистра данных. Первые выходы соответствующих узлов формирования и хранения флагов ячеек накопителя объединены и соединены соответственно с информационными входами второй и четвертой групп выходного регистра данных. Вторые выходы первого и второго регистров ячеек накопителя соединены с первыми входами соответствующих узлов сравнения. При этом вторые входы первых узлов сравнения ячеек накопителя объединены и являются входами первой группы опроса устройства, а выход первого узла сравнения каждой ячейки накопителя соединен с первым входом первого элемента ИЛИ, второй вход которого соединен с вторым выходом первого узла формирования и хранения флагов, третий вход задания режима которого соединен с выходом первого элемента ИЛИ и первым входом элемента И каждой ячейки накопителя. Выходы элементов И каждой ячейки накопителя подключены к соответствующим входам блока считывания. Вторые входы вторых узлов сравнения ячеек накопителя объединены и являются входами второй группы опроса устройства. Выход второго узла сравнения каждой ячейки накопителя соединен с первым входом второго элемента ИЛИ, второй вход которого соединен с вторым выходом второго узла формирования и хранения флагов, третий вход задания режима которого соединен с выходом второго элемента ИЛИ и вторым входом элемента И каждой ячейки накопителя. The first inputs of the job mode nodes of the formation and storage of flags are connected to the corresponding outputs of the recording unit. The second inputs of the job mode nodes of the formation and storage of drive cells are connected to the corresponding outputs of the reading unit. The information inputs of the nodes of the formation and storage of flags of the cells of the drive are combined and connected respectively to the outputs of the second and fourth groups of the input data register. The first outputs of the corresponding nodes of the formation and storage of flags of the cells of the drive are combined and connected respectively to the information inputs of the second and fourth groups of the output data register. The second outputs of the first and second registers of the cells of the drive are connected to the first inputs of the corresponding comparison nodes. In this case, the second inputs of the first nodes of comparison of drive cells are combined and are the inputs of the first group of device polling, and the output of the first comparison node of each drive cell is connected to the first input of the first OR element, the second input of which is connected to the second output of the first node of the formation and storage of flags, the third input setting the mode of which is connected to the output of the first OR element and the first input of the AND element of each storage cell. The outputs of the elements And of each cell of the drive are connected to the corresponding inputs of the reading unit. The second inputs of the second nodes comparing the cells of the drive are combined and are the inputs of the second group of the survey device. The output of the second comparison node of each drive cell is connected to the first input of the second OR element, the second input of which is connected to the second output of the second flag generation and storage unit, the third input of the mode setting of which is connected to the output of the second OR element and the second input of the AND element of each drive cell.
Выходы блока считывания соединены с соответствующими входами разрешения записи блока записи, вход запроса записи которого соединен с третьим выходом блока управления, четвертый выход которого соединен с входом запроса чтения блока считывания, выход запроса чтения которого соединен с первым управляющим входом блока управления, второй управляющий вход которого соединен с выходом запроса записи блока записи. Входы-выходы блока управления являются входами-выходами интерфейсных сигналов устройства. The outputs of the reading unit are connected to the corresponding recording permission inputs of the recording unit, the write request input of which is connected to the third output of the control unit, the fourth output of which is connected to the read request input of the read unit, the read request output of which is connected to the first control input of the control unit, the second control input of which connected to the output of the write request of the recording unit. The inputs and outputs of the control unit are the inputs and outputs of the interface signals of the device.
Устройство-прототип обладает высоким быстродействием и обеспечивает при чтении ассоциативный поиск по ключу (или двум ключам) пакета информации, содержащего несколько полей, а также автоматический поиск свободных ячеек памяти при записи. The prototype device has high speed and provides when reading an associative search by key (or two keys) of an information package containing several fields, as well as automatic search for free memory cells when writing.
Однако устройство-прототип обладает незначительными функциональными возможностями, реализуя лишь режимы чтения и записи одного слова с двумя атрибутивными полями и одним полем данных. При этом устройство-прототип не обеспечивает аппаратной поддержки алгоритмов доступа к сложным структурам данных (типа кортеж, дерево, сеть и др.), что является весьма важным для обеспечения высокой производительности ЭВМ, где эта память используется. Кроме того устройство-прототип не обладает функциональными возможностями, обеспечивающими аппаратную поддержку "плотной" упаковки информации в накопителе и распределения ресурсов памяти. However, the prototype device has negligible functionality, realizing only the read and write modes of one word with two attribute fields and one data field. Moreover, the prototype device does not provide hardware support for algorithms of access to complex data structures (such as a tuple, tree, network, etc.), which is very important for ensuring high performance computers where this memory is used. In addition, the prototype device does not have the functionality that provides hardware support for the "dense" packaging of information in the drive and the allocation of memory resources.
Целью изобретения является расширение области применения за счет расширения функциональных возможностей устройства обеспечения аппаратной поддержки работы со сложными структурами данных. The aim of the invention is to expand the scope by expanding the functionality of the device providing hardware support for working with complex data structures.
Положительный эффект достигается тем, что в запоминающее устройство, содержащее блок памяти, регистр кода опроса, блок управления, введены блок регистров, регистр структуры данных и выходной коммутатор, соединенные между собой и указанными выше элементами новыми связями. При этом выходы регистра кода опроса подключены к соответствующим входам опроса блока памяти, первый вход синхронизации соединен с восьмым выходом блока управления, девятый выход которого соединен с вторым входом синхронизации блока памяти. Четвертый выход блока управления соединен с входом запроса записи блока памяти, первый и второй управляющие входы которого соединены с пятым и шестым выходами блока управления соответственно, седьмой выход которого соединен с входом запроса чтения блока памяти. Десятый выход блока управления соединен с управляющим входом регистра кода опроса, информационные входы первой группы которого являются входами кода опроса устройства. Информационные входы блока памяти являются входами данных устройства. Информационные входы коммутатора соединены с информационными выходами блока памяти, управляющий вход с третьим выходом блока управления, а информационные выходы первой группы являются информационными выходами устройства, информационные выходы второй группы с информационными входами второй группы блока управления, информационные входы первой группы которого соединены с выходами группы блока регистров, выход которого соединен с первым управляющим входом блока управления, первый и второй выходы которого соединены соответственно со входами чтения-запись и режима блока регистров, информационные входы которого соединены с выходами третьей группы выходного коммутатора. A positive effect is achieved by the fact that in the storage device containing a memory unit, a polling code register, a control unit, a register unit, a data structure register and an output switch are connected to each other and the above-mentioned elements with new connections. The outputs of the polling code register are connected to the corresponding polling inputs of the memory block, the first synchronization input is connected to the eighth output of the control unit, the ninth output of which is connected to the second synchronization input of the memory block. The fourth output of the control unit is connected to the input of the write request of the memory unit, the first and second control inputs of which are connected to the fifth and sixth outputs of the control unit, respectively, the seventh output of which is connected to the input of the read request of the memory unit. The tenth output of the control unit is connected to the control input of the polling code register, the information inputs of the first group of which are inputs of the polling code of the device. The information inputs of the memory block are the data inputs of the device. The information inputs of the switch are connected to the information outputs of the memory unit, the control input is with the third output of the control unit, and the information outputs of the first group are information outputs of the device, the information outputs of the second group with information inputs of the second group of the control unit, the information inputs of the first group of which are connected to the outputs of the block group registers, the output of which is connected to the first control input of the control unit, the first and second outputs of which are connected respectively to read-write and register block mode, the information inputs of which are connected to the outputs of the third group of the output switch.
Второй и третий управляющие входы блока управления соединены с выходами переполнения при записи и конца опроса блока памяти, входы типа структуры данных которого соединены с выходами регистра структуры данных, информационные входы которого являются входами кода типа структуры данных устройства, а вход синхронизации подключен к двенадцатому выходу блока управления, одиннадцатый выход которого соединен с информационными входами второй группы регистров кода опроса. Управляющие входы-выходы блока управления являются входами-выходами устройства. The second and third control inputs of the control unit are connected to the overflow outputs when recording and the end of the polling of the memory block, the inputs of the data structure type of which are connected to the outputs of the data structure register, the information inputs of which are code type inputs of the device data structure, and the synchronization input is connected to the twelfth output of the block control, the eleventh output of which is connected to the information inputs of the second group of polling code registers. The control inputs and outputs of the control unit are the inputs and outputs of the device.
При этом блок памяти содержит входной и выходной регистры, блоки записи и чтения, группу элементов И и накопитель, информационные входы и выходы которого соединены соответственно с выходами входного регистра и информационными входами выходного регистра, входы синхронизации которых являются первым и вторым входами синхронизации блока. Входы входного и выходы выходного регистров являются соответственно информационными входами и выходами блока. Выходы группы блока чтения соединены с соответствующими первыми входами элементов И группы, вторые входы которых объединены и являются первым управляющим входом блока. Выходы элементов И группы соединены со входами группы блока записи, входы которого являются входами запроса записи блока, выход выходом переполнения при записи блока. Выходы группы блока записи соединены с соответствующими входами записи накопителя, выходы чтения которого соединены с входами группы блока чтения, вход и выход которого являются соответственно входом запроса чтения и выходом конец опроса блока. Входы типа структуры данных и опроса являются соответственно входами кодов типа структуры данных и опроса блока. Управляющий вход накопителя является вторым управляющим входом блока. При этом блок памяти содержит блок чтения, в состав которого входят узлы чтения, блок записи, в состав которого входят узлы записи, входной регистр, выходной регистр, накопитель, содержащий ячейки памяти. In this case, the memory block contains input and output registers, write and read blocks, a group of AND elements, and a drive, the information inputs and outputs of which are connected respectively to the outputs of the input register and information inputs of the output register, the synchronization inputs of which are the first and second synchronization inputs of the block. The inputs and outputs of the output registers are respectively the information inputs and outputs of the block. The outputs of the group of the reading block are connected to the corresponding first inputs of the elements AND groups, the second inputs of which are combined and are the first control input of the block. The outputs of the elements AND groups are connected to the inputs of the group of the recording block, the inputs of which are the inputs of the request to write the block, the output is the overflow output when recording the block. The outputs of the group of the recording block are connected to the corresponding recording inputs of the drive, the read outs of which are connected to the inputs of the group of the reading block, the input and output of which are respectively the input of the read request and the output end of the block polling. The inputs of the type of data structure and polling are respectively the inputs of codes of the type of data structure and polling of the block. The drive control input is the second control input of the unit. The memory unit contains a reading unit, which includes reading nodes, a recording unit, which includes recording nodes, an input register, an output register, a drive containing memory cells.
В каждую ячейку памяти, содержащую регистры с первого по четвертый, схемы сравнения с первой по третью, введены узел идентификации типа структуры данных, схема "И" и узел идентификации тела элемента структуры данных. Первые входы схем сравнения подключены к первым выходам соответствующих регистров с первого по третий, а вторые входы схем сравнения всех ячеек памяти накопителя соединены по столбцам и подключены к соответствующим входам опроса блока памяти. Первые управляющие входы регистров с первого по четвертый каждой ячейки памяти соединены между собой и подключены к соответствующим выходам записи блока записи. Вход сигнала запроса записи и выход сигнала переполнения при записи блока записи соединены с соответствующими одноименными входами и выходом блока памяти. Вторые управляющие входы регистров с первого по четвертый каждой ячейки памяти соединены между собой и подключены к соответствующим выходам чтения блока чтения. Вход сигнала запроса чтения и выход сигнала конец опроса при чтении блока чтения подключены к соответствующим одноименным входу и выходу блока памяти. Вторые выходы соответствующих регистров с первого по третий и выходы регистра четвертого всех ячеек памяти объединены по столбцам и соединены соответственно с информационными выходами первой по четвертой групп блока накопителя. In each memory cell containing the first to fourth registers, the comparison schemes from the first to the third, a data structure type identification node, an AND circuit, and a body identification element of the data structure element are introduced. The first inputs of the comparison circuits are connected to the first outputs of the corresponding registers from the first to the third, and the second inputs of the comparison circuits of all the memory cells of the drive are connected in columns and connected to the corresponding polling inputs of the memory block. The first control inputs of the registers from the first to the fourth of each memory cell are interconnected and connected to the corresponding recording outputs of the recording unit. The input of the write request signal and the output of the overflow signal when recording the recording unit are connected to the corresponding inputs and output of the memory unit of the same name. The second control inputs of the registers from the first to the fourth of each memory cell are interconnected and connected to the corresponding read outputs of the read block. The input of the read request signal and the output of the end of the poll signal when reading the reading unit are connected to the corresponding input and output of the memory unit of the same name. The second outputs of the corresponding registers from the first to the third and the outputs of the register of the fourth of all memory cells are combined in columns and connected respectively to the information outputs of the first to fourth groups of the drive block.
Информационные входы соответствующих регистров с первого по четвертый всех ячеек накопителя объединены по столбцам и соединены соответственно с входами первой по четвертой групп блока накопителя. Причем выходы схем сравнения с первой по третью соединены с входами первой группы узла идентификации типа структур данных. Одноименные входы второй группы всех узлов идентификации типа структуры данных объединены и подключены к входам типа структуры данных блока 1 памяти. Выходы узла идентификации типа структуры данных каждой ячейки памяти подключены к соответствующим входам схемы "И", выход которой соединен с первым входом узла идентификации тела структуры данных, второй вход которого соединен с первым управляющим входом регистра с первого по четвертый. Третьи входы всех узлов идентификации тела структуры данных накопителя объединены и подключены к управляющему входу (сигнала тело-элемент) блока накопителя. Выходы узлов идентификации тела структуры данных соединены с соответствующими выходами блока накопителя. The information inputs of the corresponding registers from the first to the fourth of all cells of the drive are grouped in columns and connected respectively to the inputs of the first to fourth groups of the drive unit. Moreover, the outputs of the first to third comparison circuits are connected to the inputs of the first group of the identification node of the type of data structures. The inputs of the second group with the same name of all identification nodes of the data structure type are combined and connected to the inputs of the data structure type of the memory unit 1. The outputs of the identification node of the data structure type of each memory cell are connected to the corresponding inputs of the AND circuit, the output of which is connected to the first input of the identification node of the body of the data structure, the second input of which is connected to the first control input of the register from the first to the fourth. The third inputs of all the body identification nodes of the drive data structure are combined and connected to the control input (body-element signal) of the drive unit. The outputs of the body identification nodes of the data structure are connected to the corresponding outputs of the drive unit.
Предлагаемое устройство не снижает положительных признаков устройства-прототипа (высокое быстродействие при выполнении операций чтения и записи). Однако по сравнению с ним предлагаемое запоминающее устройство обладает широкими функциональными возможностями, обеспечивая аппаратную поддержку эффективной работы со сложными структурами данных. Причем введенных элементов структуры вполне достаточно, чтобы при необходимости набор реализуемых запоминающим устройством функций мог быть расширен. Это достигается за счет того, что в предлагаемом устройстве обеспечена эффективная реализация, так называемых, базовых операций, а последовательность действий при записи и чтении сложных структур данных обеспечивается последовательностью (микропрограммой, программой) выполнения базовых операций. Причем, эта последовательность может быть занесена в блок управления устройства как заведомо, так и в процессе ее эксплуатации. The proposed device does not reduce the positive features of the prototype device (high speed when performing read and write operations). However, compared with it, the proposed storage device has wide functionality, providing hardware support for efficient work with complex data structures. Moreover, the introduced structural elements are quite sufficient so that, if necessary, the set of functions realized by the storage device can be expanded. This is achieved due to the fact that the proposed device provides an effective implementation of the so-called basic operations, and the sequence of actions when writing and reading complex data structures is ensured by the sequence (firmware, program) of basic operations. Moreover, this sequence can be entered into the control unit of the device both knowingly and during its operation.
На фиг. 1 приведена схема запоминающего устройства; на фиг. 2 схема блока памяти. Устройство (фиг. 1) содержит блок 1 памяти, блок 2 регистров, выходной коммутатор 3, регистр 4 кода опроса, регистр 5 структуры данных, блок управления 6, входные 7 и выходные 8 шины данных, шину 9 кода опроса, шину 10 кода структуры данных, шину 11 входных-выходных интерфейсных управляющих сигналов. При этом выходы регистра 4 кода опроса подключены к соответствующим входам опроса блока 1 памяти, первый вход синхронизации которого соединен с восьмым выходом блока 6 управления, девятый выход которого соединен с вторым входом синхронизации блока 1 памяти. Четвертый выход блока 6 управления соединен с входом запроса записи блока 1 памяти, первый и второй управляющие входы которого соединены с пятым и шестым выходами блока 6 управления соответственно, седьмой выход которого соединен с входом запроса чтения блока 1 памяти. Десятый выход блока 6 управления соединен с управляющим входом регистра 4 кода опроса, информационные входы первой группы которого являются входами кода опроса устройства и подключены к шине 9 кода опроса. Информационные входы блока 1 памяти являются входами данных устройства и подключены к шине 7 входных данных. Информационные входы выходного коммутатора 3 соединены с информационными выходами блока 1 памяти, управляющий вход с третьим выходом блока 6 управления, а информационные выходы первой группы являются информационными выходами устройства и подключены к шине 8. Информационные выходы второй группы коммутатора 3 соединены с информационными входами второй группы блока 6 управления, информационные входы первой группы которого соединены с выходами группы блока 2 регистров, выход которого соединен с первым управляющим входом блока 6 управления, первый и второй выходы которого соединены соответственно с входами чтения-запись и режима блока 2 регистров, информационные входы которого соединены с выходами третьей группы выходного коммутатора 3. In FIG. 1 shows a diagram of a storage device; in FIG. 2 circuit block memory. The device (Fig. 1) contains a memory block 1, a register block 2, an output switch 3, a polling code register 4, a data structure register 5, a control unit 6, input 7 and output 8 data buses, a polling code bus 9, a structure code bus 10 data bus 11 input-output interface control signals. The outputs of the register 4 of the polling code are connected to the corresponding polling inputs of the memory unit 1, the first synchronization input of which is connected to the eighth output of the control unit 6, the ninth output of which is connected to the second synchronization input of the memory unit 1. The fourth output of the control unit 6 is connected to the write request input of the memory unit 1, the first and second control inputs of which are connected to the fifth and sixth outputs of the control unit 6, respectively, the seventh output of which is connected to the read request input of the memory unit 1. The tenth output of the control unit 6 is connected to the control input of the polling code register 4, the information inputs of the first group of which are inputs of the device polling code and are connected to the polling code bus 9. The information inputs of the memory unit 1 are the data inputs of the device and are connected to the input data bus 7. The information inputs of the output switch 3 are connected to the information outputs of the memory unit 1, the control input is from the third output of the control unit 6, and the information outputs of the first group are information outputs of the device and are connected to the bus 8. Information outputs of the second group of switch 3 are connected to the information inputs of the second group of the block 6 control, the information inputs of the first group of which are connected to the outputs of the group of the block 2 registers, the output of which is connected to the first control input of the control unit 6, he first and second outputs which are respectively connected to the inputs of read-write registers and 2 block mode, data inputs of which are connected to the outputs of the third group of output switch 3.
Второй и третий управляющие входы блока 6 управления соединены с выходами переполнения при записи и конца опроса блока 1 памяти, входы типа структуры данных которого соединены с выходами регистра 5 структуры данных, информационные входы которого являются входами кода типа структуры данных устройства и подключены к шине 10, а вход синхронизации регистра 5 подключен к двенадцатому выходу блока 6 управления, одиннадцатый выход которого соединен с информационными входами второй группы регистра 4 кода опроса. Управляющие входы-выходы блока 6 управления являются входами-выходами устройства, которые соединены с шиной 11. При этом блок памяти 1 (фиг. 2) содержит входной 16 и выходной 17 регистры, блоки записи 14 и чтения 12, группу элементов 20 И и накопитель 18, информационные входы и выходы которого соединены соответственно с выходами входного регистра 16 и информационными входами выходного регистра 17, входы синхронизации которых являются первыми и вторым входами синхронизации блока 1 памяти. Входы входного 16 и выходы выходного 17 регистров являются соответственно информационными входами и выходами блока. Выходы группы блока 12 чтения соединены с соответствующими первыми входами элементов И 20 группы, вторые входы которых объединены и являются первым управляющим входом блока 1 памяти, выходы элементов И 20 группы соединены с входами группы блока записи 14, входы которого являются входами запроса записи блока, выход выходом переполнения при записи блока. Выходы группы блока записи 14 соединены с соответствующими входами записи накопителя 18, выходы чтения которого соединены с входами группы блока чтения 12, вход и выход которого являются соответственно входом запроса чтения и выходом конец опроса блока, входы типа структуры данных и опроса являются соответственно входами кодов типа структуры данных и опроса блока. Управляющий вход накопителя является вторым управляющим входом блока. The second and third control inputs of the control unit 6 are connected to the overflow outputs when recording and the end of the polling of the memory unit 1, the inputs of the data structure type of which are connected to the outputs of the data structure register 5, the information inputs of which are the code type inputs of the device data structure and are connected to the bus 10, and the synchronization input of the register 5 is connected to the twelfth output of the control unit 6, the eleventh output of which is connected to the information inputs of the second group of the register code 4 of the polling code. The control inputs and outputs of the control unit 6 are the inputs and outputs of the device, which are connected to the bus 11. The memory unit 1 (Fig. 2) contains input 16 and output 17 registers, write and read blocks 12, a group of elements 20 AND, and a drive 18, the information inputs and outputs of which are connected respectively with the outputs of the input register 16 and the information inputs of the output register 17, the synchronization inputs of which are the first and second synchronization inputs of the memory unit 1. The inputs of the input 16 and outputs of the output 17 registers are respectively the information inputs and outputs of the block. The outputs of the group of the reading unit 12 are connected to the corresponding first inputs of the elements And 20 of the group, the second inputs of which are combined and are the first control input of the memory unit 1, the outputs of the elements And 20 of the group are connected to the inputs of the group of the recording unit 14, the inputs of which are the inputs of the request to write the block, the output overflow output when writing a block. The outputs of the group of the recording unit 14 are connected to the corresponding recording inputs of the drive 18, the read outs of which are connected to the inputs of the group of the reading unit 12, the input and output of which are respectively the input of the read request and the output end of the block polling, the inputs of the data structure type and the polling are respectively the inputs of codes of the type data structures and block polling. The drive control input is the second control input of the unit.
Каждая ячейка памяти 19 содержит (фиг. 2) регистры 21 с первого по четвертый, схемы сравнения 22 с первой по третью, первые входы которых подключены к первым выходам соответствующих регистров 21 с первого по третий. Вторые входы схем сравнения 22 всех ячеек памяти 19 накопителя 18 соединены по столбцам и подключены к соответствующим входам опроса блока 1 памяти. Первые управляющие входы регистров 21 с первого по четвертый каждой ячейки памяти 19 соединены между собой и подключены к соответствующим выходам записи блока 14 записи. Вторые управляющие входы регистров 21 с первого по четвертый каждой ячейки памяти 19 соединены между собой и подключены к соответствующим выходам чтения блока 12 чтения. Вторые выходы соответствующих регистров 21 с первого по третий и выходы регистра 21 четвертого всех ячеек памяти 19 объединены по столбцам и соединены соответственно с информационными выходами с первой по четвертой групп блока накопителя 18. При этом информационные входы соответствующих регистров 21 с первого по четвертый всех ячеек 19 накопителя объединены по столбцам и соединены соответственно с входами первой по четвертой групп блока накопителя 18. Each memory cell 19 contains (Fig. 2) registers 21 from first to fourth, comparison circuits 22 from first to third, the first inputs of which are connected to the first outputs of the corresponding registers 21 from first to third. The second inputs of the comparison circuits 22 of all memory cells 19 of the drive 18 are connected in columns and connected to the corresponding polling inputs of the memory unit 1. The first control inputs of the registers 21 from the first to the fourth of each memory cell 19 are interconnected and connected to the corresponding outputs of the recording unit 14 records. The second control inputs of the registers 21 from the first to the fourth of each memory cell 19 are interconnected and connected to the corresponding read outputs of the reading unit 12. The second outputs of the corresponding registers 21 from the first to the third and the outputs of the register 21 of the fourth of all memory cells 19 are connected in columns and connected respectively to the information outputs from the first to fourth groups of the drive unit 18. At the same time, the information inputs of the corresponding registers 21 from the first to fourth of all cells 19 drive are combined in columns and connected respectively to the inputs of the first to fourth groups of drive unit 18.
Каждая ячейка памяти накопителя (фиг. 2) также содержит узел 23 идентификации типа структуры данных, схему И 24 и узел 25 идентификации тела-элемента структуры данных. При этом выходы схем сравнения 22 с первой по третью соединены с входами первой группы узла 23 идентификации типа структуры данных. Одноименные входы второй группы всех узлов 23 идентификации типа структуры данных объединены и подключены к соответствующим входам типа структуры данных блока 1 памяти. Выходы узла 23 идентификации типа структуры данных каждой ячейки памяти подключены к соответствующим входам схемы И 24, выход которой соединен с первым входом узла 25 идентификации тела структуры данных, второй вход которого соединен с первым управляющим входом регистров 21 с первого по четвертый. Третьи входы всех узлов 25 идентификации тела структуры данных накопителя 18 объединены и подключены ко входу сигнала тело-элемент блока 1 памяти. Выходы узлов 25 идентификации тела структуры данных соединены с соответствующими выходами чтения блока накопителя 18. Each memory cell of the drive (Fig. 2) also contains a node 23 identifying the type of data structure, the circuit And 24 and the node 25 identification of the body-element of the data structure. The outputs of the comparison circuits 22 from the first to the third are connected to the inputs of the first group of the node 23 of the identification of the type of data structure. The same inputs of the second group of all nodes 23 identification type data structure are combined and connected to the corresponding inputs of the type of data structure of the memory unit 1. The outputs of the data structure type identification node 23 of each memory cell are connected to the corresponding inputs of the AND circuit 24, the output of which is connected to the first input of the data structure body identification node 25, the second input of which is connected to the first control input of the registers 21 from the first to the fourth. The third inputs of all nodes 25 identification of the body of the data structure of the drive 18 are combined and connected to the signal input of the body-element of the memory unit 1. The outputs of the nodes 25 identification of the body of the data structure are connected to the corresponding reading outputs of the drive unit 18.
Техническая реализация каждой составляющей компоненты запоминающего устройства не вызывает каких-либо затруднений. Так блок 1 памяти (фиг. 2) может быть реализован в виде одной или нескольких больших интегральных схем (БИС), выполненных по современной технологии. При этом также, как и в устройстве-прототипе, блок накопителя 18 (фиг. 2) является регулярным и содержит типовые регистры 21, построенные по классической схеме с соответствующими входами записи и входами сигнала разрешения записи, а также выходами для выдачи информации с соответствующими входами сигнала разрешения выдачи. The technical implementation of each component component of the storage device does not cause any difficulties. So block 1 memory (Fig. 2) can be implemented in the form of one or more large integrated circuits (LSI), made by modern technology. Moreover, as in the prototype device, the drive unit 18 (Fig. 2) is regular and contains typical registers 21 constructed according to the classical scheme with the corresponding recording inputs and inputs of the recording permission signal, as well as outputs for issuing information with corresponding inputs permission signal issuance.
Узел 23 идентификации структуры данных представляет собой логическую схему, например, выполненную на трех двухвходовых схемах ИЛИ, на первые входы которых поступают сигналы с выходов схем совпадения 22, а на вторые сигналы кода типа структуры данных. При этом, если один из сигналов кода типа структуры данных представлен логической "единицей", то соответствующий сигнал с выхода схемы совпадения 22 игнорируется. Тем самым исключается необходимость сравнения содержимого соответствующего регистра с кодом опроса при считывании информации. The data structure identification node 23 is a logic circuit, for example, executed on three two-input OR circuits, the first inputs of which receive signals from the outputs of the matching circuits 22, and the second signals of a code of the type of the data structure. Moreover, if one of the code signals of the data structure type is represented by a logical "unit", then the corresponding signal from the output of the matching circuit 22 is ignored. This eliminates the need to compare the contents of the corresponding register with the interrogation code when reading information.
Аналогично узел 25 (фиг. 2) идентификации тела структуры данных представляет собой логическую схему, выполненную с применением простейших логических схем. Similarly, the node 25 (Fig. 2) of identifying the body of the data structure is a logic circuit made using the simplest logic circuits.
Блок чтения 12 и блок записи 14 идентичны соответствующим блокам чтения и записи устройства-прототипа и содержат соответственно узлы чтения 13 и узлы записи 15 по количеству ячеек памяти 19 накопителя. При этом каждый из указанных узлов 13 и 15 содержит триггерную схему и схемы И, соединенные соответствующими связями, что с точки зрения практической реализации этих блоков не представляет затруднений. The reading unit 12 and the writing unit 14 are identical to the corresponding reading and writing blocks of the prototype device and respectively comprise reading nodes 13 and recording nodes 15 in the number of memory cells 19 of the drive. Moreover, each of these nodes 13 and 15 contains a trigger circuit and circuits And, connected by appropriate connections, which from the point of view of practical implementation of these blocks is not difficult.
Блок 2 регистров представляет собой память с дисциплинами обслуживания FIFO ("первым пришел первым обслужен") или LIFO ("первым пришел последним обслужен") и может быть реализован по известным принципам построения буферной памяти с указанными дисциплинами обслуживания (пат. США N 4805139, кл. G 11 C 7/00, 19/00, 19/28, 1989). Block 2 registers is a memory with service disciplines FIFO ("first come first served") or LIFO ("first come last served") and can be implemented according to well-known principles for constructing a buffer memory with these service disciplines (US Pat. No. 4,805,139, cl G 11 C 7/00, 19/00, 19/28, 1989).
Выходной коммутатор 3 фактически представляет собой демультиплексор на три направления элементов структур данных, поступающих с выходов накопителя 18 блока 1 памяти. При этом выбор направления передачи коммутируемой информации определяется кодом управляющего слова, поступающего с соответствующих выходов блока управления 6. Выходной коммутатор 3 может быть выполнен на стандартных логических элементах, и его практическая реализация не представляет затруднений. The output switch 3 is actually a demultiplexer for three directions of data structure elements coming from the outputs of the drive 18 of the memory unit 1. In this case, the choice of the direction of transmission of the switched information is determined by the code of the control word coming from the corresponding outputs of the control unit 6. The output switch 3 can be performed on standard logic elements, and its practical implementation is not difficult.
Регистр кода опроса 4 и регистр кода структуры данных 5 (фиг. 1) представляют собой классические триггерные регистры, принимающие с одного (двух) направления и выдающие в одно направление информацию при наличии соответствующих управляющих сигналов, поступающих из блока управления 6. Практическая реализация этих регистров не вызывает затруднений. The register of the polling code 4 and the code register of the data structure 5 (Fig. 1) are classic trigger registers that receive from one (two) direction and output one-way information when there are corresponding control signals coming from the control unit 6. Practical implementation of these registers does not cause difficulties.
Блок управления 6 представляет собой микропрограммный (или жесткий) автомат, предназначенный для анализа, формирования и выдачи управляющих сигналов, определяющих реализацию указанных выше базовых операций и на их основе алгоритмов работы со сложными структурами данных. Он может быть реализован по известным классическим принципам как в виде заказной БИС, так и на известной элементной базе. The control unit 6 is a microprogram (or hard) machine designed to analyze, generate and issue control signals that determine the implementation of the above basic operations and based on them algorithms for working with complex data structures. It can be implemented according to well-known classical principles both in the form of a custom-made LSI and on a well-known element base.
Шина 11 входных-выходных интерфейсных управляющих сигналов предназначена для связи по управляющим сигналам предлагаемого ЗУ с системой обработки и содержит линию передачи сигнала обращения к ЗУ, линию передачи типа реализуемой операции (чтение-запись), линии передачи кода разновидности реализуемой операции каждого типа (например, чтение с уничтожением или без уничтожения, чтение элемента, кортежа, дерева, сети и т. д.), а также линии передачи других сигналов, необходимых для согласованного взаимодействия работы ЗУ и системы обработки (линия сигнала занятости памяти, линия сигнала окончания цикла чтения и т. д.). The bus 11 of the input-output interface control signals is designed to communicate on the control signals of the proposed memory with the processing system and contains a transmission line of the signal for accessing the memory, a transmission line of the type of the operation being implemented (read-write), a code transmission line of a variation of the implemented operation of each type (for example, reading with or without destruction, reading an element, a tuple, a tree, a network, etc.), as well as transmission lines for other signals necessary for the coordinated interaction of the memory and processing system (line I have a memory busy signal, signal the end of the line reading cycle, and so on. d.).
Предлагаемое запоминающее устройство (ЗУ) работает следующим образом. В устройстве осуществляют запись, хранение и извлечение различных структур данных типа: скаляр, вектор, массив, список, дерево, сеть, кортеж, матрица, или их компонентов: элемент списка, элемент сети, ветка, узел дерева, элемент кортежа, элемент (столбец, строка) матрицы и т. д. Запоминающее устройство ориентировано также на запись, хранение и выдачу тела структуры данных, представляющего собой побайтную упаковку (цепочку) информации с одним общим именем. The proposed storage device (memory) operates as follows. The device records, stores and retrieves various data structures of the type: scalar, vector, array, list, tree, network, tuple, matrix, or their components: list element, network element, branch, tree node, tuple element, element (column , row) matrices, etc. The storage device is also focused on recording, storing and issuing the body of the data structure, which is a byte packing (chain) of information with one common name.
В общем случае формат представления данных содержит 4 поля (3 поля для атрибутивных признаков и 1 поле данных): поля имени, двух полей указателей (индексов) и одного поля данного. В соответствии с этим форматы указанных структур данных имеют следующий вид:
скаляр (СК): Иск, ⌀, ⌀ Д;
вектор (В) Ив, J, ⌀, Д; (J 1, l)
матрица (М): Им, J1, J2, Д; (J1 1, m; J2 1,n); (массив)
список (Сп): Исп, УКис, ⌀, Тсп;
дерево (Д): Ид, УК1ис, УК2ис, Тсп;
дерево (Д): Ид, УКIис, УК2ис, Тд;
сеть (Ст): Ист. УКIвx, УК2вx, Тст;
кортеж (К): Nк, Uп, ⌀, Тк,
где тело (Т): Uт, Д1,Дi, Дs;
И имя соответствующей структуры данных; УКис, УКвх указатель исходящей и входящей соответственно; Nк номер кортежа;
Иn имя поля позиций; ⌀ пусто (нет информации); Д данные; l количество компонент вектора; m, n количество элементов в столбце и в строке матрицы соответственно; S общее количество байт в теле структуры данных.In general, the data presentation format contains 4 fields (3 fields for attribute attributes and 1 data field): name fields, two fields of pointers (indices) and one field of this. In accordance with this, the formats of these data structures are as follows:
scalar (SK): And sk , ⌀, ⌀ D;
vector (B) And c , J, ⌀, D; (J 1, l)
matrix (M): And m , J 1 , J 2 , D; (J 1 1, m; J 2 1, n); (array)
list (Cn): And cn , CC is , ⌀, T cn ;
tree (D): And d , UK1 is , UK2 is , T cn ;
tree (D): And d , UKI is , UK2 is , T d ;
network (St): And Art . UKI in , UK2 in , T st ;
tuple (K): N k , U p , ⌀, T k ,
where the body (T): U t , D 1 , D i , D s ;
And the name of the corresponding data structure; UK IS , UK IH pointer outgoing and incoming, respectively; N to the number of the tuple;
And n is the name of the position field; ⌀ empty (no information); D data; l the number of components of the vector; m, n the number of elements in the column and in the row of the matrix, respectively; S is the total number of bytes in the body of the data structure.
В соответствии с этим для хранения указанных структур данных в каждой ячейке 19 накопителя блока памяти предусмотрены регистры 21 (слева направо на фиг. 2 с первого по четвертый). При этом первый регистр 21 слева предназначен для хранения кода имени, следующие два (второй и третий) для хранения кодов двух указателей (индексов) и четвертый регистр 21 предназначен для хранения кода данных. In accordance with this, registers 21 are provided for storing the indicated data structures in each cell 19 of the memory block drive (from left to right in Fig. 2 from the first to the fourth). In this case, the first register 21 on the left is for storing the name code, the next two (second and third) for storing the codes of two pointers (indices) and the fourth register 21 is for storing the data code.
Работа ЗУ основана на безадресном размещении информации в ассоциативном накопителе 18 (фиг. 2) с соответствующими полями атрибутивных признаков, содержащих коды опроса и коды типа структуры данных, которые определяют какие коды полей при ассоциативном опросе используются. The work of the memory is based on the addressless placement of information in the associative drive 18 (Fig. 2) with the corresponding attribute fields containing polling codes and codes of the data structure type, which determine which field codes are used for associative polling.
При реализации доступа к таким структурам данных, как скаляр, вектор, массив (матрица) не требуется сложных алгоритмов. При этом по результатам ассоциативного поиска может быть выявлено множество хранящихся в накопителе 18 данных, которые ЗУ выдает из накопителя в определенной последовательности. Эта последовательность в общем случае может быть произвольной, однако наличие в этих структурах индексов позволяет далее идентифицировать считанные элементы структуры. Причем вывод из устройства может осуществляться с уничтожением или сохранением считанной информации. Для этого используют сигнал удаления (фиг. 1, 2). When accessing data structures such as a scalar, vector, array (matrix), complex algorithms are not required. Moreover, according to the results of an associative search, a plurality of data stored in the drive 18 can be detected, which the memory gives out from the drive in a certain sequence. This sequence can generally be arbitrary, but the presence of indices in these structures allows further identification of the read structure elements. Moreover, the output from the device can be carried out with the destruction or preservation of the read information. To do this, use the delete signal (Fig. 1, 2).
Окончание процесса считывания всей последовательности выявленного по коду опроса множества данных фиксируется сигналом "Конец опроса", который вырабатывается блоком чтения 12 и поступает на третий управляющий вход блока управления 6 (фиг. 1). The end of the reading process of the entire sequence of the data set identified by the interrogation code is fixed by the “End of interrogation” signal, which is generated by the reading unit 12 and fed to the third control input of the control unit 6 (Fig. 1).
Окончание процесса записи в накопитель 18 (нет ни одной свободной ячейки памяти 19) фиксируется сигналом "Переполнение при записи", который вырабатывается блоком записи 14 и поступает на второй управляющий вход блока управления 6. Схемы формирования указанных сигналов аналогичны схемам формирования в устройстве-прототипе. The end of the recording process in the drive 18 (there is not a single free memory cell 19) is recorded by the "Overflow when writing" signal, which is generated by the recording unit 14 and fed to the second control input of the control unit 6. The circuits for generating these signals are similar to the generating circuits in the prototype device.
Рассмотрим работу системы памяти при выполнении следующего набора базовых операций записи, чтения и сканирования (обход элементов структуры данных по определенному закону):
запись элемента структуры данных;
запись тела структуры данных;
чтение элемента структуры данных (или набора элементов) без уничтожения;
чтение элемента структуры данных (или набора элементов) с уничтожением;
чтение тела структуры данных без уничтожения;
чтение тела структуры данных с уничтожением.Consider the operation of the memory system when performing the following set of basic operations of writing, reading and scanning (bypassing the elements of the data structure according to a certain law):
writing a data structure element;
body record of data structure;
reading an element of the data structure (or a set of elements) without destruction;
reading an element of the data structure (or a set of elements) with destruction;
reading the body of the data structure without destruction;
reading the body of the data structure with destruction.
На основе этих базовых операций сформированы алгоритмы записи сложных структур данных в блок 1 памяти, а также алгоритмы доступа к ним. Эти алгоритмы представлены в виде микропрограмм (программ), которые размещены в блоке управления 6 системы памяти и обеспечивают:
запись, чтение кортежей, списков, деревьев, сетей и работу с ними;
уточнение (корректировку) структур данных;
выращивание графов.Based on these basic operations, algorithms for writing complex data structures to memory unit 1, as well as access algorithms to them, are generated. These algorithms are presented in the form of microprograms (programs), which are located in the control unit 6 of the memory system and provide:
writing, reading tuples, lists, trees, networks and working with them;
refinement (adjustment) of data structures;
growing graphs.
Запись элементов (тела) структуры данных. Record of elements (body) of the data structure.
Режим записи. Структурная схема алгоритма реализации режима записи (базовая операция) приведена на фиг. 3, где соответственно отображены управляющие сигналы, вырабатываемые блоком управления для выполнения указанных функций. Рассмотрим сначала случай, когда накопитель блока 1 памяти не содержит информации, т. е. непосредственно состояние устройства, например, после включения источника питания. Сигнал сброса (на фиг. 1 и 2 цепи сброса не показаны) переводит в исходное ("нулевое") состояние все триггерные схемы блока 1 памяти (блока чтения 12, фиг. 2, блока записи 14, входного 16 и выходного 17 регистров), блока 2 регистров, регистра кода опроса 4, регистра структуры данных 5, а также триггерные схемы блока управления 6. Recording mode. The block diagram of the recording mode implementation algorithm (basic operation) is shown in FIG. 3, where control signals generated by the control unit for performing the indicated functions are respectively displayed. We first consider the case when the drive of the memory unit 1 does not contain information, i.e., the state of the device itself, for example, after turning on the power source. The reset signal (in Fig. 1 and 2, the reset circuit is not shown) translates to the initial ("zero") state all the trigger circuits of the memory unit 1 (read unit 12, Fig. 2, write unit 14, input 16 and output 17 registers), block 2 registers, register polling code 4, register data structure 5, as well as trigger circuits of the control unit 6.
После этого по соответствующим линиям шины 11 входа-выхода интерфейсных управляющих сигналов (фиг. 1) подают сигнал "Обращение к ЗУ и сигнал "Запись". Одновременно по входным шинам 7 данных подают слово, содержащее записываемый элемент. Структура накопителя 18 и алгоритм работы запоминающего устройства в режиме записи построен таким образом, что запись осуществляют одновременно во все четыре регистра 21 выбранной ячейки накопителя 18 независимо от того, какую разновидность операции записи реализуют (запись элемента или тела структуры данных) и для какого вида структуры данных (кортеж, дерево, сеть и т. д.). After that, along the corresponding lines of the input-output bus of the interface control signals (Fig. 1), the signal “Access to the memory and the signal“ Record "is applied. At the same time, a word containing the recordable element is supplied via the input data buses 7. The structure of the drive 18 and the operating algorithm of the storage devices in the recording mode is constructed in such a way that recording is carried out simultaneously in all four registers 21 of the selected cell of the drive 18, regardless of what kind of write operation is implemented (recording an element or body of the data structure) for any type of data structure (tuple tree network and t. d.).
Однако, если осуществляют запись элемента структуры данных, то на соответствующей линии шины 11 выставляют сигнал (например, высокий уровень), указывающий на запись элемента. Если осуществляют запись тела структуры данных, то на этой же линии шины 11 выставляют сигнал (низкий уровень), указывающий на запись тела структуры данных. При этом последовательность записи структурных элементов, составляющих вектор, матрицу, дерево или любую другую сложную структуру, возлагают на внешнюю (по отношению к ЗУ) систему, например, систему обработки. However, if a data structure element is recorded, a signal (for example, a high level) indicating a record of the element is set on the corresponding line of the bus 11. If the body of the data structure is recorded, then a signal (low level) indicating the recording of the body of the data structure is set on the same bus line 11. In this case, the recording sequence of the structural elements that make up the vector, matrix, tree or any other complex structure is assigned to an external (in relation to the memory) system, for example, a processing system.
При наличии на шинах 11 и 7 управляющих сигналов и данных, блок управления 6 на соответствующих выходах вырабатывает следующие сигналы: "Запрос записи", сигнал "Тело-элемент", а также сигнал синхронизации входного регистра 16 блока 1 памяти (фиг. 1), который, поступая на управляющий вход регистра 16, разрешает передачу кода слова с входной шины 7 данных через соответствующие входы накопителя 18, на входной регистр 16, где этот код слова запоминается. С выходов этого регистра 16 сигналы кода слова поступают на информационные входы всех четырех регистров 21 ячеек памяти 19 накопителя 18 (фиг. 2). If there are control signals and data on buses 11 and 7, the control unit 6 generates the following signals at the respective outputs: "Write request", the "Body-element" signal, as well as the synchronization signal of the input register 16 of the memory unit 1 (Fig. 1), which, entering the control input of the register 16, allows the transmission of the word code from the input data bus 7 through the corresponding inputs of the drive 18, to the input register 16, where this word code is stored. From the outputs of this register 16, the word code signals are fed to the information inputs of all four registers 21 of the memory cells 19 of the drive 18 (Fig. 2).
Одновременно, сигнал запроса записи, поступая на соответствующий вход блока 14 записи блока 1 памяти, инициирует первый сверху (фиг. 2) узел записи 15, который вырабатывает сигнал разрешения записи, поступающий через соответствующий вход накопителя 18 на первые управляющие входы всех четырех регистров 21 ячейки памяти 19, реализуя тем самым запись в регистры 21 кодов слова, находящихся на информационных входах этих регистров. At the same time, the write request signal, arriving at the corresponding input of the recording unit 14 of the memory unit 1, initiates the first recording unit 15 from above (Fig. 2), which generates a recording permission signal that passes through the corresponding input of the drive 18 to the first control inputs of all four cell registers 21 memory 19, thereby realizing a record in registers 21 of the word codes located on the information inputs of these registers.
Одновременно сигнал разрешения записи поступает на второй вход узла 25 идентификатора тела структуры данных (фиг. 2), подготавливая тем самым узел 25 к приему сигнала "тело-элемент". При этом, если осуществляют запись "тела" структуры данных, то сигнал "тело-элемент" (высокий уровень), вырабатываемый блоком управления 6, поступая на соответствующий вход этого узла 25, запоминается в нем на время хранения всего записываемого слова в регистрах 21 (фиг. 2). Если же осуществляют запись элемента структуры данных, то сигнал "тело-элемент" блоком управления 6 не вырабатывается, и в узле 25 не запоминается. Следует отметить: что узел 25 идентификации тела структуры данных присутствует в каждой ячейке 19 накопителя 18, и запись в него информации осуществляют одновременно с записью кода всего слова в регистры 21 ячейки памяти 19 накопителя 18. At the same time, the write enable signal is supplied to the second input of the data structure body identifier node 25 (Fig. 2), thereby preparing the node 25 for receiving the body-element signal. Moreover, if the “body” of the data structure is recorded, the “body-element” signal (high level) generated by the control unit 6, arriving at the corresponding input of this node 25, is stored in it for the duration of storage of the entire recorded word in the registers 21 ( Fig. 2). If the data structure element is recorded, the body-element signal is not generated by the control unit 6, and is not stored in the node 25. It should be noted: that the body structure identification node 25 of the data structure is present in each cell 19 of the drive 18, and information is recorded in it at the same time as writing the code of the whole word in the registers 21 of the memory cell 19 of the drive 18.
Блок записи 15 также, как и в устройстве-прототипе, построен таким образом, что при заполнении накопителя 18 всегда запись первого слова происходит автоматически в первую (сверху) ячейку памяти 19, второго слова во вторую и т. д. Это осуществляется за счет того, что 1-й узел записи 15 (после выполнения первого цикла записи) блокирует свои цепи выработки выходного сигнала и переключает сигнал запроса записи на инициализацию последующего (второго сверху) узла записи. Аналогичный процесс происходит при записи кода слова во вторую, третью сверху и последующие ячейки памяти 19. The recording unit 15, as well as in the prototype device, is constructed in such a way that when the drive 18 is full, the first word is always recorded automatically in the first (top) memory location 19, the second word in the second, etc. This is done due to that the 1st recording node 15 (after completing the first recording cycle) blocks its output signal generation circuit and switches the recording request signal to initialize the subsequent (second from the top) recording node. A similar process occurs when writing the word code into the second, third from above and subsequent memory cells 19.
Точно также осуществляют запись кода слова в произвольную свободную ячейку памяти 19, расположенную в любом месте (по отношению к другим ячейкам) накопителя 18. При этом узлы записи 15, соответствующие занятым ячейкам памяти, переключают сигнал запроса записи на последующие узлы записи (сверху вниз) до тех пор, пока не окажется первая свободная ячейка памяти 19, и тогда соответствующий ей узел записи 15 инициализируется этим сигналом. Затем при записи последующего слова сигнал запроса записи аналогично инициализирует узел записи 15, принадлежащий следующей по счету сверху свободной ячейке памяти, и так далее, пока все свободные ячейки памяти не будут заняты. Тогда, при подаче на вход блока записи 14 очередного сигнала запроса записи этот сигнал "проскакивает" все заблокированные узлы записи 15 и в виде сигнала переполнения при записи поступает через соответствующий выход блока 14 на одноименный вход блока управления 6, предотвращая тем самым возможность потери информации при записи. In the same way, the word code is recorded in an arbitrary free memory cell 19 located anywhere (with respect to other cells) of the drive 18. In this case, the recording nodes 15 corresponding to the occupied memory cells switch the write request signal to the subsequent recording nodes (from top to bottom) until the first free memory cell 19 appears, and then the corresponding recording unit 15 is initialized with this signal. Then, when recording the next word, the write request signal likewise initializes the recording unit 15, which belongs to the next available free memory cell, and so on, until all free memory cells are occupied. Then, when the next write request signal is fed to the input of the recording unit 14, this signal “skips” all the blocked recording units 15 and, as an overflow signal, is recorded through the corresponding output of the unit 14 to the input of the control unit 6 of the same name, thereby preventing the possibility of information loss during records.
Режим чтения. Чтение элемента (тела) структур данных. Reading mode. Reading an element (body) of data structures.
Структурная схема алгоритма реализации режима чтения приведена на фиг. 4, где соответственно отображены управляющие сигналы, вырабатываемые блоком управления 6 для выполнения указанных функций. The block diagram of the algorithm for implementing the reading mode is shown in FIG. 4, where the control signals generated by the control unit 6 for performing these functions are respectively displayed.
Для выполнения операции чтения на соответствующие входы блока управления 6 по шине 11 подают сигнал "Обращение" к системе памяти, сигнал "Чтение", а также соответствующий код управляющего слова, указывающий на одну из шести указанных выше разновидностей операции чтения, например, чтение элемента структуры данных (или набора элементов) без уничтожения. To perform a read operation, the signal “Access” to the memory system, the “Read” signal, as well as the corresponding control word code indicating one of the six types of read operations indicated above, for example, reading a structure element, are sent to the corresponding inputs of the control unit 6 via bus 11 data (or a set of elements) without destruction.
Одновременно по шине 10 на входы регистра 5 подают код типа структуры данных, определяющий в зависимости от типа структуры данных использование первых трех полей кода слова (записанных в регистрах 21) при ассоциативном поиске запрашиваемой информации по значениям кодов ключей опроса, которые подают на входы регистра 4 по шине 9. At the same time, a data structure type code is supplied to the inputs of register 5 via bus 10, which determines, depending on the type of data structure, the use of the first three fields of the word code (recorded in registers 21) when associatively searching for the requested information by the values of the polling key codes that are fed to the inputs of register 4 on bus 9.
Блок управления 6 при поступлении сигналов по шине 11 вырабатывает на своих выходах следующий набор управляющих сигналов в определенной последовательности:
"Запрос чтения", поступающий на одноименный вход блока 1 памяти (фиг. 1, 2);
"Удаление" (низкий уровень), поступающий на первый управляющий вход блока 1 памяти и препятствующий уничтожению содержимого выбранной ячейки памяти 19 накопителя 18 (фиг. 2);
управляющий сигнал занесения кода опроса, поступающий с десятого выхода блока управления 6 на управляющий вход регистра 4 кода опроса (фиг. 1);
управляющий сигнал занесения считанного кода слова из накопителя 18 (фиг. 2) на выходной регистр 17 этого накопителя, поступающий с девятого выхода блока управления 6 на второй вход синхронизации блока 1 памяти (фиг. 1);
сигналы управления выходным коммутатором 3, поступающие с третьего выхода блока управления 6 на управляющие входы выходного коммутатора 3.The control unit 6 upon receipt of signals via the bus 11 generates at its outputs the following set of control signals in a certain sequence:
"Read request", arriving at the same input of the memory unit 1 (Fig. 1, 2);
"Deletion" (low level) supplied to the first control input of the memory unit 1 and preventing the destruction of the contents of the selected memory cell 19 of the drive 18 (Fig. 2);
a control signal for entering the polling code coming from the tenth output of the control unit 6 to the control input of the polling code register 4 (Fig. 1);
a control signal for entering the read word code from the drive 18 (Fig. 2) to the output register 17 of this drive coming from the ninth output of the control unit 6 to the second synchronization input of the memory unit 1 (Fig. 1);
control signals of the output switch 3 coming from the third output of the control unit 6 to the control inputs of the output switch 3.
При наличии указанных управляющих сигналов, вырабатываемых блоком управления 6, код типа структуры данных на шине 10 заносится в регистр 5, а код опроса на шине 9 запоминается в регистре 4 (фиг. 1). Сигналы с выходов этих регистров поступают на соответствующие одноименные входы блока 1 памяти. При этом коды опроса трех первых полей структуры данных поступают каждый параллельно по столбцу на вторые входы схем сравнения 22 всех ячеек памяти 19 накопителя 18. На первые входы этих же схем сравнения 22 поступают коды, находящиеся соответственно в первых регистрах 21 (для первого поля кода слова), во вторых регистрах 21 (для второго поля кода слова) и в третьих регистрах 21 (для третьего поля кода слова) всех ячеек памяти 19 накопителя 18. В той ячейке памяти 19, где код на первых входах схемы сравнения 22 совпадает с кодом опроса на ее вторых входах, на выходе этой схемы сравнения 22 вырабатывается сигнал, который поступает на первую группу входов узла 23 идентификации структур данных. При этом возможны случаи, когда совпадение кодов на первых и вторых входах схем сравнения 22 может произойти как для одной, так и для двух или для трех схем сравнения 22 внутри ячейки памяти 19, что означает, что в общем случае на первой группе входов узла 23 может присутствовать один, два или три сигнала совпадения. Такая ситуация может иметь место для одной или множества ячеек памяти 19 накопителя 18. Однако узел 23 будет реагировать только на те сигналы совпадения на его входах первой группы, которые не будут заблокированы соответствующими кодами типа структур данных, поступающими на входы второй группы узла 23 каждой ячейки памяти 19 накопителя 18 (фиг. 2). Коды структур данных определяются принципами построения и логикой функционирования схемы узла 25 и, например, для следу- ющих структур данных могут иметь вид:
Наименование Формальное Код типа
структуры (эле- описание структуры
ментов струк- структуры данных
туры данных данных
Скаляр Иск, ⌀, ⌀,Д 0 1 1
Вектор (элемент
вектора) Uв, I, ⌀, Д 0 0 1
Матрица (эле-
мент матрицы) Uм, I1, I2, Д 0 0 0
Столбец матрицы " 0 1 0
Строка матрицы " 0 0 1
Дерево, сеть и т.п. UД, УК1,УК2,Tc 0 0 0(c доп. признаком)
Согласно принятому принципу построения узла 25 для указанных кодов типа структур данных номер позиции разряда кода слева направо соответствует номеру поля структуры данных, а значение разряда кода, равное "1", означает, что сигнал совпадения кода поля (под этим номером) с кодом опроса блокируется и не принимается во внимание при ассоциативном поиске.In the presence of these control signals generated by the control unit 6, a code such as a data structure on bus 10 is entered into register 5, and a polling code on bus 9 is stored in register 4 (Fig. 1). The signals from the outputs of these registers are supplied to the corresponding inputs of the same name block 1 memory. In this case, the interrogation codes of the first three fields of the data structure arrive in parallel along the column to the second inputs of the comparison circuits 22 of all memory cells 19 of the drive 18. The first inputs of the same comparison circuits 22 receive codes that are respectively in the first registers 21 (for the first field of the word code ), in the second registers 21 (for the second field of the word code) and in the third registers 21 (for the third field of the word code) of all memory cells 19 of the drive 18. In that memory cell 19, where the code on the first inputs of the comparison circuit 22 coincides with the polling code at her second entrances, and the output of the comparison circuit 22 produces a signal which is fed to a first group of input node 23 identifying data structures. In this case, there may be cases where the coincidence of the codes on the first and second inputs of the comparison circuits 22 can occur both for one, and for two or three comparison circuits 22 inside the memory cell 19, which means that in the general case on the first group of inputs of the node 23 one, two or three match signals may be present. Such a situation may occur for one or many memory cells 19 of drive 18. However, the node 23 will only respond to those matching signals at its inputs of the first group that will not be blocked by the corresponding codes such as data structures arriving at the inputs of the second group of the node 23 of each cell memory 19 of drive 18 (Fig. 2). Codes of data structures are determined by the principles of construction and the logic of functioning of the circuit of node 25 and, for example, for the following data structures can be of the form:
Name Formal Type Code
structures (ele-
cops data structure
data data tours
Scalar I ck , ⌀, ⌀, Д 0 1 1
Vector (element
vectors) U in , I, ⌀, Д 0 0 1
Matrix (ele
matrix matrix) U m , I 1 , I 2 , D 0 0 0
Matrix column "0 1 0
Matrix row "0 0 1
Tree, network, etc. U D , UK 1 , UK 2 , T c 0 0 0 (with additional sign)
According to the accepted principle of constructing a node 25 for the indicated codes of the type of data structures, the code bit position number corresponds to the data structure field number from left to right, and the code bit value equal to "1" means that the signal for the field code (under this number) coinciding with the polling code is blocked and is not taken into account in associative searches.
Таким образом, при считывании скаляра осуществляется сравнение содержимого только первых регистров 21 всех ячеек памяти 19 с кодом опроса, поступающим на вторые входы схем сравнения 22 только первого (слева) столбца всех схем (фиг. 2) накопителя. Thus, when reading the scalar, the contents of only the first registers 21 of all memory cells 19 are compared with the polling code received at the second inputs of the comparison circuits 22 of only the first (left) column of all the circuits (Fig. 2) of the drive.
При их совпадении на выходе схемы 22 конкретной ячейки памяти 19 появляется сигнал, который поступает на первую группу входов узла 23. В соответствии с указанным значением кодов типа структуры данных на входах второй группы узла 23 (скаляр) сигналы на всех остальных входах первой группы этого узла блокируются, и узел 23 выдает на своих выходах сигналы, совпадающие по своему значению на входах схемы И 24. Полученный сигнал совпадения с выходов схемы И 24 поступает на первый вход узла 25 идентификации тела структуры данных. Так как в выбранной ячейке 19 памяти находится элемент (скаляр), а не тело структуры данных, то при записи всего слова признак тела структуры данных в узел 25 выбранной ячейки памяти не был записан. Поэтому сигнал с выхода схемы И 24 без логических преобразований проходит через узел 25 и с его выхода в качестве сигнала разрешения чтения поступает на одноименный вход чтения соответствующего узла 13 блока чтения 12, подготавливая его к выработке сигнала чтения. When they coincide, the output of the circuit 22 of a particular memory cell 19 gives a signal that goes to the first group of inputs of the node 23. In accordance with the specified value of codes such as a data structure at the inputs of the second group of the node 23 (scalar), the signals at all other inputs of the first group of this node are blocked, and the node 23 gives out at its outputs signals that match in value at the inputs of the circuit And 24. The received signal matches the outputs of the circuit And 24 goes to the first input of the node 25 identifying the body of the data structure. Since in the selected memory cell 19 there is an element (scalar), and not the body of the data structure, when writing the whole word, the attribute of the body of the data structure in node 25 of the selected memory cell was not recorded. Therefore, the signal from the output of the And 24 circuit without logical transformations passes through the node 25 and, from its output, as a read permission signal, goes to the reading input of the same name of the corresponding node 13 of the reading block 12, preparing it for generating the read signal.
Сигнал "Запрос чтения", поступая с соответствующего выхода блока управления 6 на одноименный вход блока 1 памяти (фиг. 1) и соответственно накопителя 18 (фиг. 2), запускает подготовленный сигналом разрешения чтения соответствующий узел чтения 13 блока чтения 12. Узел чтения 13 вырабатывает на своем выходе сигнал чтения, который поступает на первый вход схемы И 20, принадлежащий выбранной ячейке памяти 19, а также на вторые управляющие входы с первого по четвертый регистров 21 осуществляя выдачу информации с этих регистров на соответствующие группы входов выходного регистра 17 блока 1 памяти (фиг. 2). При наличии на управляющем входе регистра 17 синхронизирующего сигнала, поступающего со второго входа синхронизации блока 1, вся считанная информация с регистров 21 выбранной ячейки памяти 19 запоминается на этом регистре. С выходов регистра 17 все коды слова поступают на информационные входы выходного коммутатора 3. The signal "Read request", coming from the corresponding output of the control unit 6 to the same input of the memory unit 1 (Fig. 1) and, respectively, of the drive 18 (Fig. 2), starts the corresponding read node 13 of the read unit 12 prepared by the read permission signal. generates a read signal at its output, which is fed to the first input of AND circuit 20, which belongs to the selected memory cell 19, as well as to the second control inputs from the first to the fourth registers 21, providing information from these registers to the corresponding groups in output register odov Jan. 17 of the storage unit (FIG. 2). If there is a synchronization signal at the control input of register 17 coming from the second synchronization input of block 1, all the read information from the registers 21 of the selected memory cell 19 is stored on this register. From the outputs of the register 17, all word codes are fed to the information inputs of the output switch 3.
При этом, так как осуществляют считывание простого элемента структуры данных (типа скаляр, вектор), то сигнал на управляющем входе выходного коммутатора 3 настраивает этот коммутатор на передачу всего считанного кода слова из блока 1 памяти через информационные выходы первой группы на выходную шину данных 8. At the same time, since a simple element of the data structure is read (such as a scalar, vector), the signal at the control input of the output switch 3 configures this switch to transmit the entire read word code from the memory unit 1 through the information outputs of the first group to the output data bus 8.
При этом, если осуществляют чтение элемента структуры данных без уничтожения, то, как было указано выше, блок управления 6 вырабатывает сигнал "Удаление" низким уровнем (фиг. 1), который, поступая на первый управляющий вход блока 1 памяти и на первые входы всех схем И 20 (фиг. 2), блокирует прохождение сигнала чтения через соответствующую схему И 20, на вход разрешения записи блока записи 14 и соответствующего узла записи 15, принадлежащего выбранной ячейке памяти. Тем самым этот узел записи 15 оказывается не подготовленным для инициализации сигналом запроса записи, и сигнал запроса записи в цикле записи "проскакивает" через этот узел 15 на вход следующего узла блока записи 14. Тем самым запись новой информации в ячейку памяти, из которой только что было произведено считывание, не происходит, т. е. старая информация сохраняется. Moreover, if the data structure element is read without being destroyed, then, as was mentioned above, the control unit 6 generates a “Delete” signal with a low level (Fig. 1), which, arriving at the first control input of memory unit 1 and at the first inputs of all circuits AND 20 (Fig. 2), blocks the passage of the read signal through the corresponding circuit And 20, at the input of the write permission of the recording unit 14 and the corresponding recording unit 15 belonging to the selected memory cell. Thus, this recording node 15 is not prepared for initialization by the write request signal, and the write request signal in the write cycle “skips” through this node 15 to the input of the next node of the recording unit 14. Thus, the recording of new information in the memory cell from which it was read, does not occur, that is, the old information is stored.
Если же осуществляют чтение информации с уничтожением, то блок управления 6 по сигналу кода управляющего слова, поступающего по шине 11 и указывающего на разновидность режима чтения, вырабатывает на соответствующем выходе сигнал "Удаление" (высокий уровень). Этот сигнал, поступая через первый управляющий вход блока 1 памяти на первые входы схем И 20 накопителя 18, разрешает прохождение сигналов чтения с выхода узла 13 блока чтения 12 (фиг. 2) выбранной ячейки памяти на вход соответствующего узла записи блока записи 14, подготавливая тем самым этот узел 15 для его запуска сигналом запроса записи и, следовательно, для записи новой информации в эту ячейку памяти. Считанная информация не сохраняется, а регистры 21 выбранной ячейки памяти обнуляются. If the information is read with destruction, then the control unit 6, by the signal of the control word code coming on the bus 11 and indicating the type of reading mode, generates a "Delete" signal (high level) at the corresponding output. This signal, passing through the first control input of the memory unit 1 to the first inputs of the AND circuits 20 of the drive 18, allows the read signals to pass from the output of the node 13 of the read unit 12 (Fig. 2) of the selected memory cell to the input of the corresponding recording unit of the write unit 14, thereby preparing this node itself 15 for its triggering by a write request signal and, therefore, for recording new information in this memory cell. The read information is not stored, and the registers 21 of the selected memory cell are reset.
Следует подчеркнуть, что сохранение или уничтожение информации при считывании может быть реализовано в предлагаемом запоминающем устройстве независимо от того, происходит чтение элемента или тела структуры данных, простой структуры данных (скаляр, вектор и т. д.) или сложной структуры данных (дерево, сеть, кортеж и т. д.). Для этого лишь необходимо, чтобы блок управления 6 в зависимости от задания разновидности режима чтения вырабатывал на соответствующем выходе сигнал "Удаление" низким или высоким уровнем. It should be emphasized that the storage or destruction of information during reading can be implemented in the proposed storage device, regardless of whether the element or body of the data structure is read, a simple data structure (scalar, vector, etc.) or a complex data structure (tree, network , tuple, etc.). To do this, it is only necessary that the control unit 6, depending on the type of reading mode, produce a “Delete” signal at a corresponding output low or high.
Чтение тела структуры данных (с уничтожением или без уничтожения) из блока 1 памяти осуществляют аналогично чтению простой структуры данных, например, скаляра. Отличие состоит лишь в том, что на вторую группу входов узла 23 идентификации типа структуры данных подают код 0 1 1, который вместе с дополнительным признаком (в качестве которого выступает занесенный в узел 25 записи признак тела) обеспечивает на первом выходе узла 25 выбранной ячейки памяти сигнал разрешения чтения. Reading the body of the data structure (with or without destruction) from the memory unit 1 is carried out similarly to reading a simple data structure, for example, a scalar. The only difference is that the code 0 1 1 is supplied to the second group of inputs of the data structure type identification node 23, which, together with an additional feature (which is a body sign entered in the recording unit 25), provides the first memory node 25 of the selected memory cell read permission signal.
На основе рассмотренных выше базовых операций может быть реализовано чтение или запись сложных структур данных (дерево, сеть, кортеж и т. п.) в виде алгоритмической последовательности базовых операций. При этом реализацию обращений осуществляют по соответствующим программам (микропрограммам), которые могут быть размещены либо с специальной памяти, находящейся в блоке управления 6, либо реализованы в этом блоке 6 в виде жесткого автомата. Based on the basic operations discussed above, reading or writing complex data structures (tree, network, tuple, etc.) in the form of an algorithmic sequence of basic operations can be implemented. Moreover, the implementation of calls is carried out according to the appropriate programs (microprograms), which can be placed either from a special memory located in the control unit 6, or implemented in this unit 6 in the form of a hard machine.
Это объясняется тем, что информационное тело сложных структур данных, как правило, не может быть размещено в выделенном для этого четвертом поле (четвертом регистре 21) формата слова (например, при записи символьной строки произвольной длины или константы с двойной точностью и т. д.). В этом случае используют специальный вид размещения сложной структуры данных в накопителе 18: глобальное имя сложной структуры данных размещают в первом поле (в первом слева на фиг. 2 регистре 21), а информационное тело во всех остальных полях (во втором, третьем и четвертом регистрах 21) с побайтной упаковкой. С помощью узла 23 идентификации предусматривают блокировку сигналов совпадения от второго и третьего полей ячеек накопителя при ассоциативном сравнении с опросными ключами, при этом кодовое пространство имени тела не пересекается с кодовым пространством первых полей элементов структуры данных за счет использования дополнительного признака тела структуры данных, записанного в узле 25 (фиг. 2). This is because the information body of complex data structures, as a rule, cannot be placed in the fourth field (fourth register 21) allocated for this word format (for example, when recording a character string of arbitrary length or a constant with double precision, etc. ) In this case, a special type of placement of a complex data structure in drive 18 is used: the global name of the complex data structure is placed in the first field (in the first register on the left in Fig. 2, register 21), and the information body in all other fields (in the second, third and fourth registers 21) with byte packing. Using the identification node 23, it is possible to block coincidence signals from the second and third fields of drive cells during associative comparison with polling keys, while the code space of the body name does not intersect with the code space of the first fields of data structure elements due to the use of an additional feature of the data structure body recorded in node 25 (Fig. 2).
Чтение сложных структур данных рассмотрим на примере чтения кортежа, структура которого имеет вид Nк, Uк, ⌀, Тк.We will consider reading complex data structures using the example of reading a tuple, the structure of which has the form N k , U k , ⌀, T k .
Структурная схема реализации чтения сложной структуры данных приведена на фиг. 5. The block diagram of the implementation of reading complex data structures is shown in FIG. 5.
Последовательность обращений к запоминающему устройству для чтения кортежа определяет (как было указано выше) внешняя по отношению к ЗУ программа, реализуемая, например, процессором. The sequence of calls to the storage device for reading a tuple is determined (as was indicated above) by a program external to the memory, implemented, for example, by a processor.
Сначала по глобальному номеру Nк кортежа отыскивают в блоке 1 памяти "голову" кортежа. Для этого реализуют базовую операцию чтения элемента структуры данных типа скаляра методом ассоциативного опроса по ключу, представляющему собой код номера кортежа Nк. По этому коду в накопителе 18 (фиг. 2) "откликнутся" множество ячеек памяти 19, составляющее кортеж, причем каждая ячейка со своим номером позиции Uк. Содержимое этих ячеек памяти последовательно считываются точно также, как реализуется базовая операция чтения скаляра за исключением того, что считанную информацию (номера позиций Uк) передают через третью и вторую группы выходов выходного коммутатора на информационные входы блока 2 регистров и на информационные входы второй группы блока управления 6. При этом блок управления 6 при наличии на шине 11 соответствующих управляющих сигналов ("Обращение", "Чтение" и др.) вырабатывает на третьем выходе сигнал управления коммутатором 3, и на других выходах необходимый набор управляющих сигналов, обеспечивающих выполнение рассмотренных выше базовых операций чтения информации по ключу из блока 1 памяти, а также сигнал записи и сигнал выбора режима, поступающие на соответствующие одноименные входы блока 2 регистров (фиг.1) для осуществления записи в него номеров (имен) позиций Uк кортежа, поступающих с третьей группы выходов коммутатора 3.First, by the global number N to the tuple, the "head" of the tuple is found in the memory unit 1. To do this, they implement the basic operation of reading a scalar-type data structure element by associative polling by key, which is a tuple number code N k . According to this code, in the drive 18 (Fig. 2), a plurality of memory cells 19, constituting a tuple, each cell with its own position number U to “respond”. The contents of these memory cells are sequentially read in exactly the same way as the basic scalar reading operation is implemented, except that the read information (position numbers U к ) is transmitted through the third and second groups of outputs of the output switch to the information inputs of the block 2 registers and to the information inputs of the second group of the block control 6. In this case, control unit 6, if there are corresponding control signals on the bus 11 ("Access", "Read", etc.), generates control signal of switch 3 at the third output, and to other outputs the necessary set of control signals that ensure the implementation of the above basic operations of reading information by key from the memory unit 1, as well as a recording signal and a mode selection signal received at the corresponding inputs of the same block 2 registers (figure 1) to write numbers into it ( names) of the positions U to the tuple coming from the third group of outputs of the switch 3.
Затем по именам позиций Uк, находящихся в блоке 2 регистров, отыскивают множество ячеек 19 накопителя 18, в которых размещены тела записи Тк в виде побайтной упаковки символьных строк.Then, by the names of the positions U k located in the block 2 of the registers, a plurality of cells 19 of the drive 18 are searched for, in which the recording bodies T k are placed in the form of byte packing of character strings.
Для этого по своей собственной программе (микропрограмме) блок управления 6 вырабатывает на соответствующих первом и втором выходах последовательность управляющих сигналов "Чтение" и "Выбор режима", которые, поступая на соответствующие входы блока 2 регистров, реализуют последовательное считывание номеров Uк, которые через информационные входы первой группы поступают в блок управления 6 для формирования кодов ключей поиска "тел" структур данных кортежа. Сформированные блоком управления 6 коды ключей тел кортежа в определенной последовательности, задаваемой блоком 2 регистров, поступают на информационные входы второй группы регистра 4 кода опроса, где при наличии управляющего сигнала, поступающего с десятого управляющего выхода блока 6, запоминаются. Далее блок управления 6 по своей собственной программе (микропрограмме) вырабатывает последовательность управляющих сигналов для реализации базовых операций чтения тела структуры данных из накопителя 18 (фиг.2) методом ассоциативного опроса по кодам ключей, последовательно поступающим на регистр 4. При этом считанная информация через выходной коммутатор 3 поступает на выходную шину 8 данных.For this, in its own program (microprogram), the control unit 6 generates on the corresponding first and second outputs a sequence of control signals "Read" and "Mode Selection", which, when fed to the corresponding inputs of the block 2 registers, implement sequential reading of numbers U to , which through the information inputs of the first group enter the control unit 6 to generate codes for the search keys of the "bodies" of the data structures of the tuple. The key codes of the tuple bodies generated by the control unit 6 in a certain sequence defined by the block 2 of the registers are fed to the information inputs of the second group of the register code 4 of the polling code, where, in the presence of a control signal from the tenth control output of the block 6, they are stored. Next, the control unit 6 in its own program (microprogram) generates a sequence of control signals for the implementation of the basic operations of reading the body of the data structure from the drive 18 (Fig.2) by the method of associative polling by key codes sequentially received on the register 4. In this case, the read information through the output the switch 3 is fed to the output data bus 8.
При реализации доступа в память для работы со структурами данных типа список, дерево, сеть используют помимо имени конкретной структуры и ее указатели. При этом указатели применяют для осуществления различных режимов обхода по элементам выбранной структуры данных (условно выделим два режима обхода: "вглубь" и "вширь"). Стратегия обхода "вширь" предполагает сканирование сложной структуры данных, представленной, например, в виде графа, по горизонтали: сначала выбираются и обрабатываются все элементы одного яруса графа, затем осуществляется переход на следующий ярус. When implementing memory access for working with data structures of the list, tree, network type, in addition to the name of a specific structure, its pointers are used. At the same time, the pointers are used to implement various crawl modes by the elements of the selected data structure (we will conditionally distinguish two crawl modes: "deep" and "breadth"). The breadth-first crawl strategy involves scanning a complex data structure, represented, for example, in the form of a graph, horizontally: first, all elements of one tier of the graph are selected and processed, then the transition to the next tier is performed.
Стратегия обхода "вглубь" предполагает сканирование сложной структуры данных на каждом шаге с одного яруса на другой, при этом осуществляют перебор связанных маршрутов от начальной вершины до концевой. Алгоритм обхода реализуют последовательностью простых описанных выше базовых операций. Так, если осуществляют обход по дереву "вглубь", то поиск элемента дерева на текущем шаге выполняют по коду имени, находящемся в первом атрибутивном поле структуры данных (Uд, УК1, УК2, Тд). Для этого выполняют базовую операцию чтения элемента структуры данных с ассоциативным поиском по содержимому первого слева регистра 21 ячеек памяти 19 (фиг.1,2). После считывания информации из найденной ячейки памяти выходной коммутатор 3 под действием управляющего сигнала, поступающего с третьего выхода блока управления 6, передает считанные коды полей указателей этого элемента структуры с выходов второй и третьей групп коммутатора (фиг.1) на соответствующие входы блока управления 6 и блока 2 регистров, где заносятся в память типа стек с дисциплиной обслуживания LIFO. Одновременно с выходов первой группы коммутатора 3 считанная информация поступает через выходную шину 8 во внешнюю систему для анализа и формирования поисковых функций.The "deep" traversal strategy involves scanning a complex data structure at each step from one tier to another, while enumerating related routes from the initial vertex to the final one. The bypass algorithm is implemented by a sequence of simple basic operations described above. So, if a tree walk "deep" is carried out, then the search for the tree element in the current step is performed by the name code located in the first attribute field of the data structure (U d , UK 1 , UK 2 , T d ). To do this, perform the basic operation of reading an element of the data structure with an associative search by the contents of the first left register 21 memory cells 19 (Fig.1,2). After reading the information from the found memory cell, the output switch 3, under the action of a control signal from the third output of the control unit 6, transmits the read field codes of the pointers of this structure element from the outputs of the second and third groups of the switch (Fig. 1) to the corresponding inputs of the control unit 6 and block of 2 registers, where they are stored in the memory of the stack type with the LIFO service discipline. Simultaneously with the outputs of the first group of the switch 3, the read information enters through the output bus 8 into an external system for analysis and formation of search functions.
По содержимому информационного поля (четвертого поля) считанного элемента структуры данных блок управления 6 формирует код опроса, который с одиннадцатых выходов блока 6 поступает на информационные входы второй группы регистра 4, где он запоминается. Далее блок управления 6 вырабатывает на своих выходах необходимую последовательность управляющих сигналов для реализации базовой операции чтения тела элемента из блока 1 памяти в соответствии с находящимся в регистре 4 кодом опроса. После завершения чтения тела элемента, выдачи его через выходной коммутатор 3 на выходную шину данных 8, блок управления 6 вырабатывает управляющие сигналы "Чтение" и "Выбор режима", соответствующие режиму доступа типа LIFO. Эти сигналы поступают на одноименные входы блока 2 регистров, реализуя считывание записанных ранее кодов указателей и передачу их на соответствующие входы блока управления 6. Далее внешняя система проверяет условия достижения цели поиска и, если цель достигнута, прекращает дальнейшие операции поиска. В противном случае внешняя система снова инициализирует блок управления 6. Блок управления 6 формирует по коду указателя код опроса, который с его выходов поступает на вторые входы регистра 4, где запоминается. Далее по этому коду опроса осуществляют поиск и чтение следующего элемента дерева и описанный выше процесс повторяется до тех пор, пока блок 2 регистров не окажется "пустым". Based on the contents of the information field (fourth field) of the read data structure element, the control unit 6 generates a polling code, which from the eleventh outputs of the unit 6 goes to the information inputs of the second group of register 4, where it is stored. Next, the control unit 6 generates at its outputs the necessary sequence of control signals to implement the basic operation of reading the body of an element from the memory unit 1 in accordance with the polling code in register 4. After reading the body of the element, issuing it through the output switch 3 to the output data bus 8, the control unit 6 generates control signals "Read" and "Mode Selection" corresponding to the LIFO type access mode. These signals are supplied to the inputs of the same block of 2 registers, realizing the reading of the codes of pointers recorded earlier and transferring them to the corresponding inputs of the control unit 6. Next, the external system checks the conditions for achieving the search target and, if the target is reached, stops further search operations. Otherwise, the external system again initializes the control unit 6. The control unit 6 generates a polling code from the indicator code, which from its outputs goes to the second inputs of register 4, where it is stored. Then, using this interrogation code, the next element of the tree is searched and read and the process described above is repeated until block 2 of the registers is “empty”.
Реализация режима обхода "вглубь" осуществляется аналогично за исключением лишь сигнала "Выбор режима", который вырабатывается блоком управления 6 другим уровнем (по сравнению с режимом "вширь"), что обеспечивает режим доступа к блоку регистров 2 типа FIFO. The implementation of the bypass mode "in depth" is carried out similarly except for the signal "Mode Selection", which is generated by the control unit 6 at a different level (compared to the "breadth" mode), which provides access to the register block 2 of the FIFO type.
Таким образом, предлагаемое устройство по сравнению с прототипом обладает существенно большими функциональными возможностями, что позволяет обеспечить:
аппаратную поддержку сложных алгоритмов доступа к ячейкам накопителя для записи и чтения структур данных различного типа, в том числе кортежа, сети, дерева и т.д.Thus, the proposed device in comparison with the prototype has significantly greater functionality, which allows to provide:
hardware support for complex algorithms of access to drive cells for writing and reading data structures of various types, including tuple, network, tree, etc.
динамическое распределение ресурсов памяти и плотную упаковку информации за счет того, что фиксировано разделено кодовое пространство данных и атрибутивных признаков, а физическое пространство памяти заполняется динамически, причем одни и те же регистры памяти используются в одних случаях для хранения признаков, в других случаях для хранения элементов (записей) тела структуры данных. dynamic allocation of memory resources and tight packing of information due to the fact that the code space of data and attribute attributes is fixedly separated, and the physical memory space is filled dynamically, and the same memory registers are used in some cases to store signs, in other cases to store elements (records) of the body of the data structure.
При использовании в блоке управления 6 микропрограммного принципа формирования сигналов управления появляется возможность гибко перестраивать и пополнять алгоритмы доступа и формирования сложных структур данных. When using the microprogramming principle of generating control signals in control unit 6, it becomes possible to flexibly reconfigure and replenish access algorithms and the formation of complex data structures.
Claims (2)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| SU4908378 RU2037215C1 (en) | 1991-02-04 | 1991-02-04 | Storage device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| SU4908378 RU2037215C1 (en) | 1991-02-04 | 1991-02-04 | Storage device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2037215C1 true RU2037215C1 (en) | 1995-06-09 |
Family
ID=21558927
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| SU4908378 RU2037215C1 (en) | 1991-02-04 | 1991-02-04 | Storage device |
Country Status (1)
| Country | Link |
|---|---|
| RU (1) | RU2037215C1 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2268488C2 (en) * | 1999-07-20 | 2006-01-20 | Приментиа, Инк. | Method and system for data organization |
| RU2269814C2 (en) * | 1999-05-07 | 2006-02-10 | Гизеке Унд Девриент Гмбх | Method for reliable recording of pointer for circular memory |
| RU2383067C2 (en) * | 2004-06-25 | 2010-02-27 | Зтэ Корпорейшн | Method of storing data packets using pointer technique |
-
1991
- 1991-02-04 RU SU4908378 patent/RU2037215C1/en active
Non-Patent Citations (2)
| Title |
|---|
| 1. Авторское свидетельство СССР N 1310899, кл. G 11C 11/00, 1986. * |
| 2. Авторское свидетельство СССР N 1711229, кл. G 11C 11/00, 1989. * |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2269814C2 (en) * | 1999-05-07 | 2006-02-10 | Гизеке Унд Девриент Гмбх | Method for reliable recording of pointer for circular memory |
| RU2268488C2 (en) * | 1999-07-20 | 2006-01-20 | Приментиа, Инк. | Method and system for data organization |
| RU2383067C2 (en) * | 2004-06-25 | 2010-02-27 | Зтэ Корпорейшн | Method of storing data packets using pointer technique |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4433392A (en) | Interactive data retrieval apparatus | |
| US4314356A (en) | High-speed term searcher | |
| US4575798A (en) | External sorting using key value distribution and range formation | |
| US5274807A (en) | Method for reducing magnetic storage volume for computer disk image backup | |
| US4677550A (en) | Method of compacting and searching a data index | |
| US4064489A (en) | Apparatus for searching compressed data file | |
| CN100377154C (en) | Improved multi-way radix tree | |
| US4598385A (en) | Device for associative searching in a sequential data stream composed of data records | |
| US3611316A (en) | Indirect indexed searching and sorting | |
| US4170039A (en) | Virtual address translation speed up technique | |
| RU2005105582A (en) | DATABASE AND KNOWLEDGE MANAGEMENT SYSTEM | |
| US3806883A (en) | Least recently used location indicator | |
| US3771142A (en) | Digital data storage system | |
| US4531201A (en) | Text comparator | |
| RU2037215C1 (en) | Storage device | |
| US6611894B1 (en) | Data retrieval apparatus | |
| JPS60105039A (en) | Collation system of character string | |
| US3387274A (en) | Memory apparatus and method | |
| JPH0666050B2 (en) | Sort processing method | |
| EP0321493A4 (en) | A content-addressable memory system | |
| EP0170443B1 (en) | Method for searching an association matrix | |
| KR100232493B1 (en) | Descriptor Link Processing Method in Asynchronous Transfer Mode Communication | |
| JPS6134626A (en) | Method of executing external distribution and sorting | |
| SU1672471A1 (en) | Data retrieval device | |
| SU1711229A1 (en) | Storage device |