KR100258933B1 - 메모리 관리장치 및 방법 - Google Patents
메모리 관리장치 및 방법 Download PDFInfo
- Publication number
- KR100258933B1 KR100258933B1 KR1019970032914A KR19970032914A KR100258933B1 KR 100258933 B1 KR100258933 B1 KR 100258933B1 KR 1019970032914 A KR1019970032914 A KR 1019970032914A KR 19970032914 A KR19970032914 A KR 19970032914A KR 100258933 B1 KR100258933 B1 KR 100258933B1
- Authority
- KR
- South Korea
- Prior art keywords
- register
- memory block
- memory
- block
- blocks
- Prior art date
Links
Images
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- 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
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 메모리 관리 장치 및 방법에 관한 것으로서, 복수개의 메모리 블록들을 서로 링크하고 상기 각 메모리 블록마다 소정의 번호를 부여하여 사용하는 메모리부; 상기 메모리 블록들중에서 색인할 한 메모리 블록의 번호를 저장하는 제1레지스터; 상기 메모리 블록들중 마지막 링크된 메모리 블록의 번호를 저장하는 제2레지스터; 다수의 데이터가 병렬 처리되고, 상기 각 메모리 블록의 사용 유무 상태를 나타내는 한 개의 상태 비트가 저장된 제3레지스터; 및 상기 제1레지스터와 제2레지스터에 저장된 내용을 읽어 색인할 메모리 블록을 결정하고, 상기 제3레지스터에서 상기 메모리 블록에 대한 상기 상태 비트를 읽어 상기 색인할 메모리 블록이 사용 가능한지를 판단하여 그에 따라 메모리를 억세스하는 제어부를 포함함을 특징으로 한다.
본 발명에 의하면, 해당 메모리 블록이 사용 가능한지 가능하지 않는지의 정보를 담은 상태 비트들의 정보를 가진 벡터 레지스터를 사용함으로써 메모리 억세스 횟수를 줄일 수 있다.
Description
본 발명은 메모리 관리 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 다수개의 기억소자들로 구성된 벡터 레지스터를 이용하여 여러개의 균등한 저용량의 메모리 블록들을 관리하는 메모리 관리 장치 및 방법에 관한 것이다.
종래에는 도 1의 메모리부 구성도에 도시된 바와 같이 다수의 균등한 저용량 메모리 블록들에 대해 각 메모리 블록에 상태 비트를 두어 그 내용에 따라 해당 메모리 블록이 사용가능한지 불가능한지 또는 사용중인지를 알 수 있도록 하였다. 이것은 도면에 도시되지 않은 레지스터를 두어 메모리 블록 사용할 때에 각 메모리 블록의 상태 비트를 레지스터에 억세스한 후 그 내용을 읽음으로써 구현되었다.
상술한 바와 같은 메모리 블록 관리에 있어서, 메모리 블록이 사용될 때마다 메모리 억세스를 하여 상태 비트를 점검한 후 다른 메모리 블록들을 트래버설해야 하기 때문에 관련 시스템에 있어서 속도 문제를 포함하여 이 시스템 전반의 성능 저하를 가져오는 문제가 발생한다.
본 발명이 이루고자하는 기술적 과제는 메모리 블록의 사용 가능 상태를 알리는 상태 비트를 벡터 레지스터에 저장하여 빈번한 메모리 억세스를 필요로 하지 않아도 되는 메모리 블록 관리 장치 및 방법을 제공하는데 있다.
도 1은 종래의 메모리부의 구성을 도시한 것이다.
도 2는 본 발명에 따른 메모리 관리 장치의 블록도이다.
도 3은 본 발명에 따른 메모리 관리 방법의 흐름도이다.
상기 과제를 위한 메모리 관리 장치는, 복수개의 메모리 블록들을 서로 링크하고 상기 각 메모리 블록마다 소정의 번호를 부여하여 사용하는 메모리부; 상기 메모리 블록들중에서 색인할 한 메모리 블록의 번호를 저장하는 제1레지스터; 상기 메모리 블록들중 마지막 링크된 메모리 블록의 번호를 저장하는 제2레지스터; 다수의 데이터가 병렬 처리되고, 상기 각 메모리 블록의 사용 유무 상태를 나타내는 한 개의 상태 비트가 저장된 제3레지스터; 및 상기 제1레지스터와 제2레지스터에 저장된 내용을 읽어 색인할 메모리 블록을 결정하고, 상기 제3레지스터에서 상기 메모리 블록에 대한 상기 상태 비트를 읽어 상기 색인할 메모리 블록이 사용 가능한지를 판단하여 그에 따라 메모리를 억세스하는 제어부를 포함함을 특징으로 한다.
상기 다른 과제를 위한, 복수개의 메모리 블록들이 서로 링크된 메모리부, 상기 메모리 블록들을 구분하기 위한 블록 번호들중에 색인할 메모리 블록 번호를 저장하는 제1레지스터, 상기 메모리 블록중에 마지막 메모리 블록의 번호를 저장하는 제2레지스터, 다수의 레지스터로들로 되어 각 레지스터마다 상기 메모리 블록의 사용 상태를 나타내는 상태 비트가 쓰여진 제3레지스터 및 상기 제1, 제2, 제3레지스터를 읽고 메모리부를 억세스하는 제어부를 구비하는 시스템의 메모리 관리 방법에 있어서, 상기 제1레지스터와 제3레지스터를 초기화하고 상기 제2레지스터에 상기 메모리부의 최종 메모리 블록의 번호를 저장 하는 제1단계; 상기 제1단계의 상기 제1레지스터의 내용이 상기 제2레지스터의 최종 메모리 블록 번호보다 작거나 같으면 상기 제1레지스터에 기록된 메모리 블록 번호에 대한 상기 제3레지스터의 상태 비트를 읽는 제2단계;
상기 제1단계의 상기 제1레지스터의 내용이 제2레지스터에 저장된 메모리 블록 번호보다 크면 제1레지스터의 내용을 초기화 시키는 제3단계; 상기 제2단계의 상기 제3레지스터의 상태 비트를 읽어 해당 메모리 블록이 인에이블한지를 판단하는 제4단계; 상기 제4단계에서 상기 해당 메모리 블록이 인에이블 상태이면 상기 제1레지스터에 있는 색인할 메모리 블록 번호로 사용할 메모리 블록의 시작 어드레스를 산출하는 제5단계; 상기 제4단계에서 상기 해당 메모리 블록이 디세이블 상태이거나 상기 메모리 블록 사용이 종료되면 그 메모리 블록에 링크된 다음 메모리 블록의 번호를 제1레지스터에 쓰고, 사용이 종료된 메모리 블록에 대해 상기 제3레지스터에서 상기 메모리 블록의 상태 비트를 디세이블하는 제6단계; 및 다른 메모리 블록을 사용하기 위해 상기 제2단계부터 다시 수행하는 제7단계를 포함함을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
도 2는 본 발명에 따른 메모리 관리 장치의 블록도로서, 제어부(200), 메모리부(210), 제1레지스터(220), 제2 지스터(230) 및 벡터 레지스터(240)로 구성된다. 제어부(200)는 메모리를 운영 및 관리하는 주체이며, 메모리 관리를 위한 소정의 알고리즘을 포함한다. 메모리부(210)는 복수개의 서로 동일한 저용량의 메모리 블록들로 이루어지며, 각 메모리 블록들은 서로 동일한 크기이고 각자 차례로 메모리 블록 번호가 부여된다. 제1레지스터(220)는 통상의 구조를 가진 레지스터로서 메모리부(210)의 메모리 블록들중에서 곧 색인할 메모리 블록의 번호가 기억/저장된다. 제2레지스터(230)는 제1레지스터(220)와 동일한 구조의 통상의 한 데이터 저장 레지스터로서 메모리부(210)의 마지막 메모리 블록의 번호를 항시 저장한다. 벡터 레지스터(240)는 통상의 레지스터와는 달리 소정의 개수의 데이터가 함께 병렬로 입출력 및 저장될 수 있는 다수의 레지스터로 되고 각 레지스터간의 데이터 이동은 허용되지 않는 레지스터로서, 도 1에서 해당 메모리 블록이 자신의 사용 상태를 알 수 있도록 한 상태 비트들을 포함하고 있던것과는 달리 본 발명에서는 벡터 레지스터(240)가 메모리 블록들의 사용 여부 상태를 나타내는 상태 비트를 포함한다. 따라서 제어부(200)가 종래와 같이 메모리부를 직접 억세스하여 메모리 블록들의 사용 여부를 알 수 있었던 것과는 달리 벡터 레지스터(240)만를 읽어 그것을 알 수 있게 된다.
도 3은 본 발명에 따른 메모리 관리 방법의 흐름도를 도시한 것이다. 먼저 메모리부(210)를 사용하기 위해 처음에 제1레지스터(220)와 벡터 레지스터(240)의 내용을 소정의 내용으로 초기화한다(300단계). 이 때 제1레지스터(220)와 벡터 레지스터(240)의 초기화는, 상기 제1레지스터에 상기 메모리 블록들중에 첫 번째로 억세스되도록 링크된 블록의 번호를 쓰고 상기 벡터 레지스터에는 상기 각 레지스터 모두에 상기 메모리 블록이 인에이블 상태, 즉 '사용 가능' 상태임을 가리키도록 상태 비트를 세트하는 것이다. 그리고 나서 제2레지스터(230)에 메모리부(210)의 최종 메모리 블록의 번호를 기억/저장 시킨다(310단계). 제1레지스터(220)와 제2레지스터(230)의 내용의 크기를 비교하여(320단계) 제2레지스터(230)에 기록된 마지막 메모리 블록의 번호보다 제1레지스터(220)에 기록된 색인할 메모리 블록의 번호가 작거나 같으면 제1레지스터(220)에 기록된 메모리 블록 번호에 대응되는 메모리 블록의 상태 비트가 든 벡터 레지스터(240)를 읽는다(330단계). 만약 제1레지스터(220)에 저장된 메모리 블록 번호보다 제2레지스터(230)에 저장된 메모리 블록 번호가 더 작으면 제1레지스터(220)의 내용을 다시 상술한 300단계에서의 내용으로 초기화 시킨다(340단계). 벡터 레지스터(240)에 기록된, 해당 번호에 대응되는 메모리 블록의 상태 비트를 읽어 상태 비트가 인에이블이면 해당 메모리 블록이 사용 가능하다고 판단하고 디세이블이면 사용 불가능하다고 판단한다(350단계). 사용 가능하면 상술한 제1레지스터(220)에 있는 색인할 메모리 블록 번호를 이용하여 사용할 메모리 블록의 시작 어드레스를 다음의 수학식 1과 같이 산출한다(360단계).
상술한 상태 비트를 읽어 해당 메모리 블록 사용이 불가능하다고 판단되거나 상술한 메모리 블록 사용을 마치면 제1레지스터(220)에 기록된 색인할 메모리 블록 번호를 링크된 순서가 다음인 메모리 블록의 번호로 변경하고(370단계) 벡터 레지스터(240)에 있는 막 사용을 마친 메모리 블록의 상태 비트를 그 메모리 블록이 '사용 불가' 상태임을 나타내도록 디세이블한다(380단계). 한 메모리 블록 사용을 마치거나 사용하고자 한 메모리 블록의 상태가 디세이블이면 다른 메모리 블록을 사용하기 위해 제1레지스터(220)와 제2레지스터(230)의 내용의 크기를 비교하는(320단계) 단계부터 다시 차례로 수행한다.
이하에서 예를 들어 본 발명의 동작을 설명한다. 메모리부(210)를 사용하고자 할 때, 먼저 제어부(200)는 제1레지스터(220)와 벡터 레지스터(240)를 초기화 하는데(300단계) 이것은, 제1레지스터(220)에는 메모리부(210)의 첫 메모리 블록 번호를 기록하고 벡터 레지스터(240)에는 '사용 가능'의 의미를 가지는 소정의 내용을 포함하도록 모든 메모리 블록의 사용 여부를 나타내는 상태 비트들을 설정시켜 놓는 것을 말한다. 여기서는 예를 들어 '1'을 초기치로서 제1레지스터(220)에 설정하여 저장시킨다. 또한 제2레지스터(230)에 메모리부(210)를 구성하는 최종 메모리 블록의 번호를 기억시킨다(310단계). 예를 들어 최종 메모리 블록 번호가 '8'이면 제2 레지스터(230)에는 '8'이 저장된다. 사용할 메모리 블록을 색인 하기 위해 제어부(200)는 제1레지스터(220)와 제2레지스터(230) 내용의 크기를 비교하는데(320단계) 상술한 예에서 제1레지스터(220)의 내용이 제2레지스터(230)의 내용보다 작으므로 제1레지스터(220)에 기록된 색인할 메모리 블록 번호에 대응되는, 즉 벡터 레지스터(240)에 있는, 메모리 블록 번호 '1'에 대응되는 레지스터의 상태 비트를 읽는다(330단계). 그 상태 비트가 '사용 가능'의 의미로 쓰여져 있으면 제1레지스터(220)에 있는 메모리 블록의 번호를 이용하여 사용할 메모리 블록의 시작 어드레스를 상술한 수학식 1과 같이 산출하여 해당 메모리 블록인 '1'번 메모리 블록의 시작 어드레스부터 억세스 하는 식으로 메모리를 사용한다(360단계). 제어부(200)는 제1레지스터(220)에 기록된 색인할 메모리 블록 번호를 증가시키는데(370단계) 그 증가한 값은 막 사용한 메모리 블록과 이어져 링크된 바로 다음 메모리 블록의 번호가 된다. 벡터 레지스터(240)에 있는 막 사용을 마친 메모리 블록의 상태 비트를 디세이블하여(380단계) 누군가 이 메모리 블록으로의 억세스를 막는다. 다시 다음 메모리 블록을 억세스 하기위해 상술한 제1레지스터(220)와 제2 레지스터(230)의 내용의 크기를 비교하는 것(320단계)부터 상술한 단계부터 차례로 반복 수행한다.
본 발명에 의하면 해당 메모리 블록이 사용 가능한지 가능하지 않는지의 정보를 담은 상태 비트들의 정보를 가진 벡터 레지스터를 사용함으로써 메모리 억세스 횟수를 줄일 수 있다.
Claims (6)
- 복수개의 메모리 블록들을 서로 링크하고 상기 각 메모리 블록마다 소정의 번호를 부여하여 사용하는 메모리부;상기 메모리 블록들중에서 색인할 한 메모리 블록의 번호를 저장하는 제1레지스터;상기 메모리 블록들중 마지막 링크된 메모리 블록의 번호를 저장하는 제2레지스터;다수의 데이터가 병렬 처리되고, 상기 각 메모리 블록의 사용 유무 상태를 나타내는 한 개의 상태 비트가 저장된 제3레지스터; 및상기 제1레지스터와 제2레지스터에 저장된 내용을 읽어 색인할 메모리 블록을 결정하고, 상기 제3레지스터에서 상기 메모리 블록에 대한 상기 상태 비트를 읽어 상기 색인할 메모리 블록이 사용 가능한지를 판단하여 그에 따라 메모리를 억세스하는 제어부를 포함함을 특징으로 하는 메모리 관리 장치.
- 제1항에 있어서, 상기 메모리부는복수개의 서로 동일한 저용량의 메모리 블록들로 이루어짐을 특징으로 하는 메모리 관리 장치.
- 제1항에 있어서, 상기 제3레지스터는,다수의 레지스터로 되어 상기 각 레지스터마다 병렬로 데이터가 입출력되고 상기 레지스터간의 데이터 이동은 허용되지 않는 벡터 레지스터임을 특징으로 하는 메모리 관리 장치.
- 복수개의 메모리 블록들이 서로 링크된 메모리부, 상기 메모리 블록들을 구분하기 위한 블록 번호들중에 색인할 메모리 블록 번호를 저장하는 제1레지스터, 상기 메모리 블록중에 마지막 메모리 블록의 번호를 저장하는 제2레지스터, 다수의 레지스터로들로 되어 각 레지스터마다 상기 메모리 블록의 사용 상태가 인에이블인지 디세이블인지를 나타내는 상태 비트가 쓰여진 제3레지스터 및 상기 제1, 제2, 제3레지스터를 읽고 메모리부를 억세스하는 제어부를 구비하는 시스템의 메모리 관리 방법에 있어서,상기 제1레지스터와 벡터 레지스터를 초기화하고 상기 제2레지스터에 상기 메모리부의 최종 메모리 블록의 번호를 저장 하는 제1단계;상기 제1단계의 상기 제1레지스터의 내용이 상기 제2레지스터의 최종 메모리 블록 번호보다 작거나 같으면 상기 제1레지스터에 기록된 메모리 블록 번호에 대한 상기 벡터 레지스터의 상태 비트를 읽는 제2단계;상기 제1단계의 상기 제1레지스터의 내용이 제2레지스터에 저장된 메모리 블록 번호보다 크면 제1레지스터의 내용을 초기화 시키는 제3단계;상기 제2단계의 상기 제3레지스터의 상태 비트를 읽어 해당 메모리 블록이 인에이블 상태인지를 판단하는 제4단계;상기 제4단계에서 상기 해당 메모리 블록이 인에이블 상태이면 상기 제1레지스터에 있는 색인할 메모리 블록 번호로 사용할 메모리 블록의 시작 어드레스를 산출하는 제5단계;상기 제4단계에서 상기 해당 메모리 블록이 디세이블 상태이거나 상기 메모리 블록 사용이 종료되면 그 메모리 블록에 링크된 다음 메모리 블록의 번호를 제1레지스터에 쓰고, 사용이 종료된 메모리 블록에 대해 상기 제3레지스터에서 상기 메모리 블록의 상태 비트를 디세이블하는 제6단계; 및상기 제6단계에서 다른 메모리 블록을 사용하기 위해 상기 제2단계부터 다시 수행하는 제7단계를 포함함을 특징으로 하는 메모리 관리 방법.
- 제4항에 있어서, 상기 제1레지스터와 제3레지스터의 초기화는,상기 제1레지스터에 상기 메모리 블록들중에 첫 번째로 억세스되도록 링크된 블록의 번호를 쓰고 상기 벡터 레지스터에는 상기 각 레지스터 모두에 상기 메모리 블록이 인에이블 상태로 세트함을 특징으로 하는 메모리 관리 방법.
- 제4항에 있어서, 사용할 메모리 블록의 시작 어드레스를 산출하는 단계는,상기 메모리부의 최초의 메모리 블록의 시작 어드레스에 상기 제1 레지스터에 저장된 메모리 블록 번호에서 1을 뺀 값에 한 메모리 블록의 용량을 곱한 것을 더하는 것인, 시작 어드레스=첫 메모리 블록의 시작 어드레스+(색인할 메모리 블록의 번호-1)*한 메모리 블록의 용량(바이트)임을 특징으로 하는 메모리 관리 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970032914A KR100258933B1 (ko) | 1997-07-15 | 1997-07-15 | 메모리 관리장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970032914A KR100258933B1 (ko) | 1997-07-15 | 1997-07-15 | 메모리 관리장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990010216A KR19990010216A (ko) | 1999-02-05 |
KR100258933B1 true KR100258933B1 (ko) | 2000-06-15 |
Family
ID=19514564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970032914A KR100258933B1 (ko) | 1997-07-15 | 1997-07-15 | 메모리 관리장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100258933B1 (ko) |
-
1997
- 1997-07-15 KR KR1019970032914A patent/KR100258933B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990010216A (ko) | 1999-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4926314A (en) | Method and apparatus for determining available memory size | |
US6542971B1 (en) | Memory access system and method employing an auxiliary buffer | |
CN113094003B (zh) | 数据处理方法、数据存储装置及电子设备 | |
US7873763B2 (en) | Multi-reader multi-writer circular buffer memory | |
US6161195A (en) | EEPROM memory card device having defect relieving means | |
US6742078B1 (en) | Management, data link structure and calculating method for flash memory | |
US20050055532A1 (en) | Method for efficiently controlling read/write of flash memory | |
KR20050065431A (ko) | 정보 처리 장치 및 이를 위한 rom 이미지 생성 장치 | |
US20120117297A1 (en) | Storage tiering with minimal use of dram memory for header overhead | |
US5003506A (en) | Memory capacity detection apparatus and electronic applied measuring device employing the same | |
US6662287B1 (en) | Fast free memory address controller | |
US6032273A (en) | Method and apparatus for identifying read only memory | |
US4027288A (en) | Self-managing variable field storage system for handling nested data structures | |
US7409527B2 (en) | Bidirectional data storing method | |
EP0403124A2 (en) | Overlay swapping | |
JPS6141028B2 (ko) | ||
KR100258933B1 (ko) | 메모리 관리장치 및 방법 | |
CN110825658B (zh) | 闪存控制器及方法 | |
AU616653B2 (en) | Method and apparatus for determining available memory size | |
CN112148203B (zh) | 存储器管理方法、装置、电子设备及存储介质 | |
CN113470725A (zh) | 一种动态随机存储器的测试方法及装置 | |
US6742077B1 (en) | System for accessing a memory comprising interleaved memory modules having different capacities | |
JPH05258585A (ja) | ファイル装置 | |
US7213142B2 (en) | System and method to initialize registers with an EEPROM stored boot sequence | |
JPH0247735A (ja) | 計算機装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080303 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |