KR900005554B1 - Memory space expansion method by data manipulation - Google Patents
Memory space expansion method by data manipulation Download PDFInfo
- Publication number
- KR900005554B1 KR900005554B1 KR1019870015718A KR870015718A KR900005554B1 KR 900005554 B1 KR900005554 B1 KR 900005554B1 KR 1019870015718 A KR1019870015718 A KR 1019870015718A KR 870015718 A KR870015718 A KR 870015718A KR 900005554 B1 KR900005554 B1 KR 900005554B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- register
- accumulator
- address
- rotation message
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Abstract
Description
제1도는 본 발명의 방법이 적용되는 컴퓨터 주변 블록도.1 is a block diagram around a computer to which the method of the present invention is applied.
제2도는 종래의 메모리 저장 예시도.2 is a diagram of a conventional memory storage.
제3도는 본 발명의 메모리 저장 예시도.Figure 3 is an exemplary memory storage of the present invention.
제4도는 본 발명의 메모리 공간확장 방법에 따른 데이터 기록 흐름도.4 is a data recording flow chart according to the memory space expansion method of the present invention.
제5도는 본 발명의 메모리 공간확장 방법에 따른 데이터 읽음 흐름도.5 is a flowchart of reading data according to the method of expanding memory space of the present invention.
제6도는 메모리 버퍼내 레지스터 할당예시도.6 shows an example of register allocation in a memory buffer.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
1 : 중앙연산 처리장치 2 : 롬1: central processing unit 2: ROM
3 : 메모리 버퍼 4 : 입/출력 포트3: memory buffer 4: input / output port
본 발명은 컴퓨터 시스템의 ASCII 데이터 수신시 그 데이터를 8비트에서 7비트 포맷으로 축소시켜 버퍼 메모리에 저장시킬 수 있게 한 데이터 조작에 의한 메모리 공간확장 시스템에 관한 것으로, 특히 데이터 인터페이스시 데이터의 최상위 비트(비트 7)를 사용하지 않는 컴퓨터 기기에 적용하여 메모리 공간을 확작시킬 수 있게 한 메모리 공간확장 방법에 관한 것이다.BACKGROUND OF THE
일반적으로 컴퓨터 시스템에 있어서는 제1도에 도시된 바와같이, 중앙연산 처리장치(1)에서 롬(2)의 프로그램 내용을 읽어가면서 시스템 구동을 제어하게 되고, 외부 시스템과 인터페이스할 경우에는 입/출력 포트(4)를 통하여 데이터를 송신 및 수신하게 되고, 또, 그 입/출력 포트(4)를 통하여 수신되는 데이터는 메모리 버퍼(3)에 일시적으로 저장되어 중앙연산 처리장치(1)에서 추후 사용할 수 있게 되어있다.In general, in the computer system, as shown in FIG. 1, the
그런데, 종래에는 메모리 버퍼(3)에 수신 데이터를 기록함에 있어서 제2도에 도시된 바와같이 각 어드레스마다 8비트 단위로 데이터를 기록하게 되어있다. 따라서, 데이터 인터페이스시 최상시 비트(비트 7)를 사용하지 않는 컴퓨터 시스템에 있어서는 그 최상위 비트 부분이 항상 "0"으로 고정되어 필요없이 메모리 버퍼(3)의 메모리 영역이 소모되는 결점이 있었다.However, conventionally, in recording the received data in the
본 발명은 이러한 종래의 결점을 해결하기 위하여, 각 코드의 최상위 비트를 소거하여 7비트의 데이터 코드 각 데이터에 대한 어드레스 구분없이 연속적으로 버퍼 메모리에 저장하여 저장하여 메모리의 공간을 확장할 수 있게 창안한 것으로, 이를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.In order to solve the above-mentioned drawbacks, the present invention eliminates the most significant bit of each code and stores the data in the buffer memory continuously without distinguishing the address for each 7-bit data code, thereby expanding the memory space. If it is described in detail with reference to the accompanying drawings as follows.
제3도는 본 발명의 메모리 저장 예시도로서 이에 도시한 바와같이, 각 데이터 코드의 최상위 비트를 소거하여 첫 번째 7비트의 코드 데이터는 왼쪽으로 1비트씩 시프트시켜 저장하고, 다음 8번째 코드 데이터는 왼쪽으로 2비트씩 시프트시켜 상기 저장된 첫 번째 코드 데이터에 어드레스 구분없이 연속적으로 저장하며, 그 다음 3번째 코드 데이터는 왼쪽으로 3비트씩 시프트시켜 상기 저장된 2번째 코드 데이터에 어드레스 구분없이 연속적으로 저장한다.3 is an exemplary memory storage diagram of the present invention. As shown in FIG. 3, the most significant bit of each data code is erased so that the first seven bits of code data are shifted by one bit to the left and the next eighth code data is stored. Shift by two bits to the left to continuously store the first code data stored without address classification, and then shift the third code data by three bits to the left and successively store the stored second code data without address classification. .
이와같은 방식으로 수신된 코드 데이터를 메모리 버퍼(3)에 저장함으로써 8개의 코드 데이터를 저장하는데 7바이트(byte)의 메모리 공간만이 필요하게 된다.By storing the code data received in this manner in the
제4도는 본 발명의 메모리 공간확장 방법에 따른 데이터 기록 흐름도로서, 제4도에서 Temp1은 회전메시지(Rotate message) 레지스터, Temp2는 다음 루틴 연산시 사용할 선행 어드레스의 데이터 기록 레지스터, Temp3는 현재 루틴 연산시 사용할 후행 어드레스의 데이터 기록 레지스터, Temp4는 각 루틴에서의 연산에 사용할 특정수치 기억 레지스터를 나타내고, A는 누산기(accumulator)를 나타낸다.FIG. 4 is a flow chart of data writing according to the memory space expansion method of the present invention. In FIG. 4, Temp1 is a rotation message register, Temp2 is a data recording register of a preceding address to be used in the next routine operation, and Temp3 is a current routine operation. The data write register, Temp4, of the trailing address to be used at the time of designation, represents a specific numerical storage register to be used for calculation in each routine, and A represents an accumulator.
우선, 버퍼 포인터의 어드레스를 지정하고, 회전 메시지 레지스터(Temp1)에 "#1"을 배정한 후 입/출력 포트를 통해 수신되는 입력데이터 누산기(A)에 일시 저장한다. 이후 회전 메시지 레지스터(Temp1)가 "1"이면 좌측으로 1회 시프트하고, 누산기(A)에 저장된 데이터를 선행 어드레스의 데이터 기록 레지스터(Temp2)에 배정하며, 이후 회전 메시지 레지스터(Temp1)에 "1"을 더한 후 상기 누산기(A)에 입력데이터를 일시 저장하는 스텝으로 되돌아간다.First, the address of the buffer pointer is specified, "# 1 " is assigned to the rotation message register Temp1, and then temporarily stored in the input data accumulator A received through the input / output port. Then, if the rotation message register Temp1 is "1", it shifts to the left once, and allocates the data stored in the accumulator A to the data write register Temp2 of the preceding address, and then transfers "1" to the rotation message register Temp1. Is added, the process returns to the step of temporarily storing the input data in the accumulator A.
한편, 상기에서 회전 메시지 레지스터(Temp1)가 "2"이면 좌측으로 2회 시프트하고, 특정수치 기억 레지스터(Temp4)에 "#1"을 배정하며, 회전 메시지 레지스터(Temp1)가 "3"이면 좌측으로 3회 시프트하고 특정수치 기억 레지스터(Temp4)에 "#3"을 배정하며, 회전 메시지 레지스터(Temp1)가 "4"이면 좌측으로 4회 시프트하고 특정수치 기억 레지스터(Temp4)에 "#7"을 배정하며, 회전 메시지 레지스터(Temp1)가 "5"이면 좌측으로 5회 시프트하고 특정수치 기억 레지스터(Temp4)에 "#0F"를 배정하며, 회전 메시지 레지스터(Temp1)가 "6"이면 좌측으로 6회 시프트하고 특정수치 기억 레지스터(Temp4)에 "#1F"를 배정하며, 회전 메시지 레지스터(Temp1)가 "7"이면 좌측으로 7회 시프트하고 특정수치 기억 레지스터(Temp4)에 "3#F"를 배정한다. 이후 상기 누산기(A)에 저장된 입력 데이터를 후행 어드레스의 데이터 기록 레지스터(Temp3)에 배정하고, 그 데이터를 특정수치 기억 레지스터(Temp4)와 앤드화하고, 그 데이터를 선행 어드레스의 데이터 기록 레지스터(Temp2)와 오아화한후 버퍼 포인터에 그 데이터를 배정한다. 이후 후행 어드레스의 데이터 기록 레지스터의 데이터를 누산기(A)에 배정하고, 그 데이터를 "#OFF"에서 특정수치 기억 레지스터(Temp4)의 데이터를 뺀 데이터와 앤드화하고, 누산기(A)의 데이터를 선행 어드레스의 데이터 기록 레지스터(Temp2)에 배정한다. 이후 버퍼 포인터를 갱신(update)하고, 회전 메시지 레지스터(Temp1)에 "1"을 더한후 상기 입력데이터를 누산기(A)에 배정하는 스텝으로 되돌아간다.On the other hand, in the above, when the rotation message register Temp1 is "2", it shifts to the left twice, and allocates "# 1" to the specific value memory register Temp4, and when the rotation message register Temp1 is "3", Three times and assign "# 3" to the specific value memory register (Temp4) .If the rotation message register (Temp1) is "4", it shifts four times to the left and "# 7" to the specific value memory register (Temp4). If the rotation message register (Temp1) is "5", it shifts five times to the left and assigns "# 0F" to the specific value memory register (Temp4), and to the left if the rotation message register (Temp1) is "6". Shift 6 times and allocate "# 1F" to the specific value memory register (Temp4) .If the rotation message register (Temp1) is "7", shift 7 times to the left and "3 # F" to the specific value memory register (Temp4). Assign to Thereafter, the input data stored in the accumulator A is assigned to the data write register Temp3 at a later address, the data is ANDed with the specific value storage register Temp4, and the data is assigned to the data write register Temp2 at the preceding address. And then assign that data to the buffer pointer. Thereafter, the data of the data write register of the following address is allocated to the accumulator A, and the data is ANDed with the data obtained by subtracting the data of the specific value storage register Temp4 from "# OFF " It is assigned to the data write register Temp2 of the preceding address. After that, the buffer pointer is updated, " 1 " is added to the rotation message register Templ, and the process returns to the step of allocating the input data to the accumulator A.
한편, 회전 메시지 레지스터(Temp1)가 "1-7"이 아닌 경우에는 누산기(A)의 데이터와 선행 어드레스의 데이터 기록 레지스터(Temp2)의 데이터와 오아화하고, 그 데이터를 버퍼 포인터에 배정한후 버퍼 포인터를 갱신하고 회전 메시지 레지스터(Temp1)에 "#1"을 해정한 후 상기 설명한 과정을 반복수행한다.On the other hand, if the rotation message register Temp1 is not " 1-7 ", the data is accumulated with the data of the accumulator A and the data write register Temp2 of the preceding address, and the data is allocated to the buffer pointer and then buffered. After updating the pointer and freeing "# 1 " in the rotation message register Templ, the procedure described above is repeated.
제5도는 본 발명의 메모리 공간확장 방법에 따른 데이터 읽음 흐름도로서, Temp1'-Temp4'는 상기 제4도에서 정의한 Temp1-Temp4와 기능면에서 유사한 레지스터이다. 우선, 버퍼 포인터의 어드레스를 지정하고, 회전 메시지 레지스터(Temp1') 및 선행 어드레스의 데이터 기록 레지스터(Temp1')에 "#1" 및 "#0"을 각각 배정한 후 누산기(A)에 버퍼 포인터의 데이터를 배정하고, 이후 회전메시지 레지스터(Temp1')가 "1" 또는 "2","3","4","5","6"임에 따라 우측으로 1회 또는 2회, 3회, 4회, 5회, 6회 시프트하고, 특정수치 기억 레지스터(Temp4')에 "#7F" 또는 "#3F", "#1F", "#0F", "#7", "#3"을 배정하며, 이후 후행 어드레스의 데이터 기록 레지스터(Temp3')에 누산기(A)의 데이터를 배정하고, 그 데이터를 특정수치 기억 레지스터(Temp4')와 앤드화하고, 그 데이터를 선행 어드레스의 데이터 기록 레지스터(Temp2')와 오아화한다.FIG. 5 is a flowchart of reading data according to the memory space expansion method of the present invention, wherein Temp1'-Temp4 'is a register similar in function to Temp1-Temp4 defined in FIG. First, the address of the buffer pointer is specified, "# 1" and "# 0" are assigned to the rotation message register (Temp1 ') and the data write register (Temp1') of the preceding address, respectively, and then to the accumulator (A). Allocate the data, and then once, twice, or three times to the right as the rotation message register (Temp1 ') is "1" or "2", "3", "4", "5", or "6". 4 times, 5 times, 6 times, and shifts to "# 7F" or "# 3F", "# 1F", "# 0F", "# 7", and "# 3" to the specific value memory register (Temp4 '). The data of the accumulator A is assigned to the data write register Temp3 'of the following address, and the data is ANDed with the specific numerical storage register Temp4', and the data is written to the data of the preceding address. Falls into the register (Temp2 ').
이후, 누산기(A)의 데이터를 입/출력 포트(4)에 출력한후 후행 어드레스의 데이터 기록 레지스터(Temp3')의 데이터를 누산기(A)에 배정하고, 그 데이터를 "#FF"에서 특정수치 기억 레지스터(Temp4')의 데이터를 뺀 데이터와 앤드화하고, 우측으로 1회 시프트하고, 선행 어드레스의 데이터 기록 레지스터(Temp2')에 누산기(A)의 데이터를 배정한다. 이후 버퍼 포인터를 갱신(update)하고, 회전 메시지 레지스터(Temp1')에 1을 더한후 상기 누산기(A)에 버퍼 포인터의 데이터를 배정하는 스텝으로 되돌아간다. 한편, 상기에서 회전 메시지 레지스터(Temp1')가 1-6이 아닌 경우에는 우측으로 7회 시프트하고, 특정수치 기억 레지스터(4')에 "#1"을 배정한다. 이후 후행 어드레스의 데이터 기록 레지스터(Temp3')에 누산기(A)의 데이터를 배정하고, 그 데이터와 특정수치 기억 레지스터(Temp4')를 앤드화하고, 그 데이터와 선행 어드레스의 데이터 기록 레지스터(Temp2')와 오아화 한후 누산기(A)의 데이터를 입/출력 포트(4)로 출력하고, 이후 후행 어드레스의 데이터 기록 레지스터(Temp3')의 데이터를 누산기(A)에 배정하고, 그 데이터를 "#FF"에서 측정수치 레지스터(Temp4')의 데이터를 뺀 데이터와 앤드화하고, 우측으로 1회 시프트한다. 누산기(A)의 데이터를 입/출력 포트로 출력하고, 버퍼 포인터를 갱신한다. 이후 회전 메시지 레지스터(Temp1')에 "#1"을 배정한 후 상기 과정을 반복한다.Thereafter, the data of the accumulator A is output to the input /
제6도는 상기 제4도 및 제5도에서 설명한 버퍼내 레지스터의 할당 예시도이다.6 is an exemplary diagram of allocation of registers in a buffer described with reference to FIGS. 4 and 5.
이상에서 상세힌 설명한 바와같이 본 발명의 방법에 의하면 7개의 메모리 어드레스에 2개의 ASCII 코드 데이터를 정 가능하므로 동일 메모리 용량으로서도 기존 방식에 비해 1.14배 이상 많은 데이터를 저장할 수 있는 효과가 있다.As described in detail above, according to the method of the present invention, since two ASCII code data can be defined at seven memory addresses, the same memory capacity can store 1.14 times more data than the conventional method.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019870015718A KR900005554B1 (en) | 1987-12-31 | 1987-12-31 | Memory space expansion method by data manipulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019870015718A KR900005554B1 (en) | 1987-12-31 | 1987-12-31 | Memory space expansion method by data manipulation |
Publications (2)
Publication Number | Publication Date |
---|---|
KR890010718A KR890010718A (en) | 1989-08-10 |
KR900005554B1 true KR900005554B1 (en) | 1990-07-31 |
Family
ID=19267961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019870015718A KR900005554B1 (en) | 1987-12-31 | 1987-12-31 | Memory space expansion method by data manipulation |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR900005554B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100216400B1 (en) * | 1996-09-16 | 1999-08-16 | 서평원 | Received ipc message processing method in a switching system |
-
1987
- 1987-12-31 KR KR1019870015718A patent/KR900005554B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR890010718A (en) | 1989-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4648035A (en) | Address conversion unit for multiprocessor system | |
US4158227A (en) | Paged memory mapping with elimination of recurrent decoding | |
US5893148A (en) | System and method for allocating cache memory storage space | |
EP0712067A2 (en) | Flash disk card | |
KR880011678A (en) | Memory access control unit | |
GB1413739A (en) | Address conversion units and data processing systems embodying the same | |
US3778776A (en) | Electronic computer comprising a plurality of general purpose registers and having a dynamic relocation capability | |
JPH02226579A (en) | Fifo memory device | |
AU661301B2 (en) | Data transfer system | |
KR100437609B1 (en) | Method for address translation of semiconductor memory device and apparatus the same | |
US5696930A (en) | CAM accelerated buffer management | |
JPH06332806A (en) | Storage system with flash memory as storage medium and control method therefor | |
US3771142A (en) | Digital data storage system | |
JPS6232518B2 (en) | ||
KR900005554B1 (en) | Memory space expansion method by data manipulation | |
CN110825658B (en) | Flash memory controller and method | |
US4488260A (en) | Associative access-memory | |
JP3190847B2 (en) | Data transfer control device | |
JPS6329298B2 (en) | ||
US5450543A (en) | Flag-based high-speed I/O data transfer | |
JP3234382B2 (en) | Memory card | |
JPH0120514B2 (en) | ||
JPS6074085A (en) | Control method of image memory | |
KR20010075263A (en) | Method and device for writing and reading a buffer memory | |
JPS6134628A (en) | Computer provided with tag |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 19941227 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |