KR19980086729A - 복수어드레스 유지기억장치 - Google Patents

복수어드레스 유지기억장치 Download PDF

Info

Publication number
KR19980086729A
KR19980086729A KR1019980015881A KR19980015881A KR19980086729A KR 19980086729 A KR19980086729 A KR 19980086729A KR 1019980015881 A KR1019980015881 A KR 1019980015881A KR 19980015881 A KR19980015881 A KR 19980015881A KR 19980086729 A KR19980086729 A KR 19980086729A
Authority
KR
South Korea
Prior art keywords
address
temporary storage
unit
control signal
information
Prior art date
Application number
KR1019980015881A
Other languages
English (en)
Other versions
KR100573256B1 (ko
Inventor
사토시 타카하시
히로노리 야마우찌
히로노리 아카마쯔
케이이치 쿠스모토
토루 이와타
유타카 테라다
타카시 히라타
Original Assignee
모리시타 요오이찌
마쓰시타 덴키 산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모리시타 요오이찌, 마쓰시타 덴키 산교 가부시키가이샤 filed Critical 모리시타 요오이찌
Publication of KR19980086729A publication Critical patent/KR19980086729A/ko
Application granted granted Critical
Publication of KR100573256B1 publication Critical patent/KR100573256B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

데이터버스(218)를 거쳐 DRAM에 랜덤액세스할 때, 뱅크나 로우어드레스 등에 관계없이 액세스되고, 비효율적이지만, 이것을 해소하기 위해서, 주기억부(101)에 어드레스버스(207)와 데이터버스(218)를 독립하여 접속하고, 미리 어드레스를 복수개 유지하여 둔 어드레스 임시기억부(103)를 어드레스버스(207)측에 설치하고, 데이터의 입출력에 관계없이 주기억부(101)에의 액세스마다에 어드레스를 기억시키고 있는 것에 의해, 어드레스 입력의 사이클을 파이프라인화하고, 더욱이 유지된 어드레스를 사용하여 주기억부(101)가 효율적으로 동작하도록 로우어드레스가 동일어드레스의 액세스가 연결되고, 또한 로우어드레스가 동일어드레스가 없는 경우에는, 뱅크의 다른 어드레스가 연결되도록 어드레스를 비교·변환하여 메모리에 액세스하는 것에 의해, 프리차지의 회수를 적게하고, 또 프리차지를 위한 대기시간을 작게하고, 무효시간을 감소시킨 액세스를 실현한다.

Description

복수어드레스 유지기억장치
본 발명은, 복수의 프로세스 또는 복수의 프로세서에서 공유하는 복수어드레스 유지기억장치에 관한 것이고, 특히 주기억부의 데이터를 랜덤액세스로 입출력할 때에, 효율좋게 액세스하기 위하여 미리 액세스할 곳의 어드레스를 유지하여 두고, 효율적으로 액세스할 수 있도록 순서를 비교·교환하는 어드레스 유지기억장치에 관한 것이다.
복수개의 프로세스 또는 복수개의 프로세서에서 1개의 다이나믹 랜덤 액세스 메모리(이하, DRAM이라고 한다)를 공유하여 상기한 액세스를 실시하는 경우, DRAM의 액세스 시간을 단축하기 위해서는, 예컨대, 현재 싱크로너스 DRAM에 채용되어 있는 것과 같이, 주기억부의 내부를 다중뱅크구성으로 하여, 뱅크를 교환하면서 액세스하여, 외관상의 액세스시간을 감소시키고 있는 방법이 있다.
이와 같은 다중뱅크구성의 메모리시스템 중에서, 특히 어드레스 버스와 데이터버스를 독립하여 액세스할 수 있는 메모리시스템의 경우에는, 어드레스버스에 대하여 액세스하도록 했을 때에, 이전의 액세스의 종료를 기다릴 필요가 없게 되도록 선입력·선출력하는 메모리(이하, FIFO메모리라 한다)에 어드레스를 축적하고, FIFO메모리로부터 기억수단에 어드레스를 입력순으로 부여한 방법을 채용한 메모리시스템도 있다. 이 메모리시스템은 특개평4-175943호 공보에 개시되어 있다.
그렇지만, 상기한 종래의 메모리시스템에는 어드레스를 FIFO메모리에 축적하는 구성이므로, 프로세스 또는 프로세서로부터 액세스된 순서로 FIFO메모리에 축적된 정보를 꺼낼 수밖에 없으므로, FIFO메모리에 입력되어 있는 어드레스정보나 기억수단에 대하여 액세스를 실시하기 위한 제어정보도 액세스된 순번으로만 액세스가 가능하였다. 그 때문에, 프로세스 또는 프로세서로부터 액세스된 메모리시스템에서의 기억수단의 어드레스구조나 뱅크구조와 프로세스 또는 프로세서로부터 메모리시스템으로 액세스할 때의 우선순위를 고려한 액세스의 순번을 입력·교환하고, 최적의 액세스, 다시 말하면 액세스시간이 최단시간이 되도록 한 순서로 액세스를 실시한다는 것은 할 수는 없었다.
여기에서, 최적의 액세스순서에 대하여 설명한다. 예컨대, 다른 뱅크의 데이터를 연속하여 액세스하는 경우에는, 연속한 데이터의 액세스의 사이에서 프리차지(precharge)를 할 필요가 없다. 또한, 동일뱅크의 데이터를 연속하여 액세스하는 경우에 있어서도, 로우(row) 어드레스가 동일하고 컬럼(column)어드레스만이 다른 데이터를 연속하여 액세스하는 경우에는, 그 뱅크에 있어서 연속한 데이터의 액세스의 사이에서 프리차지를 실시할 필요가 없다.
이와 같은 점을 고려하면, 어드레스의 액세스순서를, 뱅크의 다른 어드레스가 연결되던지, 혹은 동일뱅크에 있어서 로우어드레스는 동일한 어드레스가 연결되도록, 액세스가 예정되어 있는 어드레스의 액세스순서를 비교·교환하고, 연속한 데이터의 액세스의 사이에 있어서의 프리차지 사이클을 삽입할 수 있는 한도를 작게 한다면, 액세스시간을 짧게 할 수 있는 것으로 고려된다.
그렇지만, 어드레스의 액세스순서를, 단순히 뱅크의 다른 어드레스가 연결되던지, 혹은 동일뱅크에 있어서의 로우어드레스가, 동일한 어드레스가 연속되도록, 액세스가 예정되어 있는 어드레스의 액세스순서를 비교하여 치환하는 만큼의 구성이면 복수의 프로세스 또는 복수의 프로세서로부터의 액세스가 끊이지 않고 행해지도록 한 상황으로 하면, 특정의 프로세스 또는 프로세서로부터의 데이터의 액세스만이 실시되고, 다른 프로세스 또는 프로세서로부터의 데이터의 액세스가 뒤로 쳐져서 다른 프로세스 또는 프로세서의 처리가 정체될 가능성이 있다. 그 이유는, 화상처리 등을 실시하는 프로세스 또는 프로세서에 있어서는, 동일뱅크에 있어서 로우어드레스가 동일한 어드레스이고, 컬럼어드레스만이 다른 데이터의 액세스가 계속되는 일이 많고, 이 경우에 다른 프로세스 또는 프로세서로부터의 뱅크가 다르던지 혹은 로우어드레스가, 다른 어드레스로의 액세스가 도중에 입력되어도, 그것은 상기와 같은 조건의 액세스순서의 입력변환에 의해 뒤로 미루어지기 때문이다.
더욱이, 단순하게 액세스순서가 액세스시간을 짧게 하기 위한 것만으로 어드레스의 입력변환이 실시되면, 언제라도 뒤로 미루어진 액세스가 나올 가능성이 있다. 이것은, 뒤로부터 추가된 액세스의 쪽이 언제라도 액세스시간을 짧게 할 수 있으므로 적당하게 된 경우이다. 이 경우에는, 액세스에 우선순위를 설정하여, 몇 번이라도 뒤로 미루어진 것이 생긴 액세스의 우선순위를 올리고, 어떤 일정이상의 우선순위의 높이를 가진 액세스는 무조건으로 액세스를 개시한다는 방법을 사용하면 회피하는 것이 가능하다.
본 발명의 목적은, 복수개의 프로세스 또는 복수개의 프로세서에서 주기억부를 공유하는 경우에 있어서, 전체의 액세스시간을 단축할 수 있는 복수어드레스 유지기억장치를 제공하는 것이다.
본 발명의 다른 목적은, 복수의 프로세스 또는 복수의 프로세서 중에서 어느 것인가의 프로세스 또는 프로세서의 액세스가 뒤로 미루어지고 그 프로세스 또는 프로세서의 처리가 정체하는 것을 방지할 수 있는 복수의 어드레스 유지기억장치를 제공하는 것이다.
본 발명은 순차 또는 동시에 입력된 어드레스를 어드레스 임시기억부에 의해 저장하고, 비교·교환부에 의해 어드레스 임시기억부에 저장된 어드레스의 순서를 전체의 액세스시간이 감소하도록 비교·교환하고, 축적된 어드레스를 주기억부의 동작에 대응하는 속도로 독출하는 것에 의해, 주기억부와 프로세스 또는 프로세서와의 사이에 필요한 액세스사이클을 감소시켜 주기억부에 대한 전체의 액세스시간을 단축하는 것이다. 전체의 액세스시간이 감소하도록, 즉, 액세스가 고속으로 되도록, 어드레스를 비교·교환한다는 것은, 예컨대, 로우어드레스가, 동일한 어드레스가 연속하여 액세스되도록 비교·교환하는 것 또는 특히, 복수뱅크구조의 주기억부의 경우에는 더욱이, 로우어드레스가 동일한 어드레스가 없는 경우에 뱅크가 다른 어드레스가 연속하여 액세스되도록 비교·교환하는 것을 의미한다. 이와 같은 비교·교환에 의해, 어떤 어드레스의 액세스로부터 다음의 어드레스의 액세스의 사이의 프리차지를 회피하거나, 혹은 프리차지를 위한 대기시간을 작게 할 수 있고, 결과적으로 전체의 액세스시간이 짧게되는 것이다. 또, 복수의 프로세스 또는 복수의 프로세서로부터의 액세스에 우선순위를 설정하고, 이것을 상기한 액세스가 고속으로 되는 것과 같은 어드레스의 비교·교환에 우선되도록 된다면, 복수의 프로세스 또는 복수의복수의 프로세서의 우선순위를 적절하게 설정하는 것에 의해, 어드레스의 순서의 입력교환에 의해 액세스순서가 단속(斷續)적으로 앞당겨지고, 특정의 프로세스 또는 프로세서로부터의 주기억부로의 액세스가 정체되어 버리는 것을 방지할 수 있다.
구체적으로 설명하면, 본 발명의 복수어드레스 유지기억장치는, 복수의 프로세스 또는 복수의 프로세서와의 사이에서 데이터의 주고받음을 실시하는 것이고, 복수의 프로세스 또는 복수의 프로세서에 공유로 되어있고, 이 복수어드레스 유지기억장치는, 주기억부와 어드레스버스와 데이터버스와 어드레스 임시기억부와, 비교·변환부로 이루어진다.
어드레스버스는, 복수의 프로세스 또는 복수의 프로세서로부터 주기억부를 액세스하기 위한 어드레스와 주기억부를 제어하기 위한 제어신호를 입력하고, 데이터버스는, 어드레스버스와는 독립하여 동작하고 복수의 프로세스 또는 복수의 프로세서와 주기억부의 사이에서 데이터를 입출력한다. 또, 어드레스 임시기억부는, 주기억부의 어드레스 입력단에 설치되어서 어드레스버스를 통하여 입력된 복수의 어드레스의 유지와 복수의 어드레스에 대응한 복수의 제어신호의 유지가 가능하고, 유지된 어드레스를 순서대로 주기억부에 부여하면서 제어신호를 주기억부에 입력한다. 더욱이, 비교·변환부는, 주기억부에 액세스된 순서에 관계없이 액세스가 고속으로 되는 순서로 어드레스 및 제어신호를 입력·변경하여 어드레스 임시기억부에서 주기억부로 입력한다.
이와 같이 비교·변환부에 의해 어드레스를 입력·변경하여 어드레스 임시기억부에서 주기억부로 입력되도록 구성하고 있으므로, 액세스를 고속화할 수 있다. 결국, 어드레스를 순차적으로 모아 둘 수 있는 어드레스 임시기억부를 가지고 있는 것에 의해, 어드레스입력의 사이클을 파이프라인화할 수 있고, 버스액세스에 대한 완충작용을 하고, 비연속적인 액세스나, 동시에 액세스가 발생한 경우에도, 순차액세스로 응답할 수 있고, 주기억부의 액세스가 효율적으로 되도록 비교·변환하여 액세스하는 것이 가능하게 되고, 필요없는 액세스사이클을 없앨 수 있어, 액세스시간을 짧게 할 수 있다.
여기에서, 어드레스버스와 데이터버스는, 어드레스입력의 사이클을 파이프라인화하기 위해서는, 독립하여 동작하는 것, 환언하면, 독립하여 동작하는 것이 필요하다. 독립하여 동작한다는 것은, 어드레스버스와 데이터버스가 다른 배선으로 되어 있는 경우만이 아니고, 동일한 배선에 있어서도 시분할에 의해 어드레스버스와 데이터버스가 독립하여 동작하고 있는 것으로 보여지는 경우도 포함하는 것이다. 상기의 시분할이라는 것은, 하나의 공통버스를 어드레스버스로서 이용하고 있는 기간은 어드레스정보만을 전송하고, 데이터버스로서 이용하고 있는 기간에는 데이터정보만을 전송하는 것과 같이 이용하는 형태의 것이다.
다음에, 메모리의 액세스순서의 입력·변경과 어드레스버스와 데이터버스가 독립하고 있는 것과의 관계에 대하여 설명한다. 어드레스버스를 통하여 프로세서 등으로부터 주기억부로 액세스하는 신호의 내용은, 주기억부로 액세스하는 어드레스정보, 읽기 또는 쓰기의 주기억부에의 제어정보, 액세스에 있어서의 우선순위정보, 액세스한 프로세서가 어떤 것인지를 표시하는 제어번호가 입력되어 있다.
프로세서가 어드레스 임시기억부로 액세스할 수 있는 조건이 갖추어져 있을 때, 즉, 어드레스 임시기억부에 빈 공간이 있고, 2개 이상의 프로세서로부터 동시에 액세스가 발생하고 있어도, 우선순위가 상대의 액세스보다도 높은 때에는, 어드레스 임시기억부에 순차적으로 기록할 수 있으므로, 프로세서 액세스에 있어서의 어드레스버스의 사이클이 종료할 때까지 다음의 액세스가 입력될 수 없다고 할 수 없다.
그 때, 만약 어드레스버스와 데이터버스가 독립하고 있다거나, 동일 버스에 있어서도 정확히 시분할이 되어 있지 않았다면, 데이터를 주고받는 사이에는, 어드레스정보나 제어정보의 액세스가 대기하고 있는 것으로 된다. 그 때문에, 어드레스버스와 데이터버스를 독립시켜 동작하여 데이터를 주고받을 때에도 어드레스정보나 제어정보의 액세스를 할 수 있도록 하고 있다.
다음에, 불필요한 액세스사이클에 대하여 설명한다. 이 불필요한 액세스사이클에는 3종류가 있다. 주기억부로 액세스하여 독출이나 기록을 실시하는 경우에는, 읽기나 쓰기 등의 제어정보와 어드레스정보를 입력하여 액세스한다. 상기한 정보가 주기억부로 입력되고 나서, 데이터의 기록이나 독출이 실시될 때까지에는, 주기억부의 기억영역에 대한 어드레스의 설정이나 데이터를 선택하는 등, 주기억부의 내부의 회로에 있어서 타임랙이 생긴다. 이것이 불필요한 액세스사이클의 첫 번째이다.
보통의 DRAM에서는, 로우어드레스와 컬럼어드레스의 소위 2종류의 어드레스를 순서대로 입력하여, 기억영역의 1개소에 대하여 읽고 쓰기를 실시할 수 있다. 그렇지만, 하나의 액세스가 있은 후부터 다음의 액세스가 행해지기 까지에는, 프리차지로 일컬어지는 말하자면, 리셋기간이 필요하게 된다. 그렇지만, 동일한 로우어드레스의 경우에는 그 리셋기간이 필요하지 않다. 이것은, 최초에 로우어드레스, 다음에 컬럼어드레스의 순서로 입력되기 때문이지만, 로우어드레스가 입력된 시점에서, 그 로우어드레스에 접속된 기억영역을 모두 동작시키고, 컬럼어드레스가 들어오면, 동작된 기억영역 중의 1개소를 지정하여 데이터의 읽고 쓰기를 실시하는 것으로 되기 때문에, 한번 동작된 기억영역 내부는, 컬럼어드레스가 달라도, 동작이라는 타임랙없이 액세스할 수 있다. 그렇지만, 주기억부에 대하여, 같은 로우어드레스의 액세스가 다른 로우어드레스의 액세스를 끼우고 있는 경우에는, 최초의 로우어드레스와 다음의 로우어드레스가 다르므로, 프리차지로 일컬어지는 리셋기간이 필요하게 되고, 그 다음의 액세스에 있어서도 로우어드레스가 다르므로, 리셋기간이 필요하게 된다. 여기에 말한 동일한 어드레스의 액세스가 있으므로 이들의 사이에 다른 로우어드레스의 액세스가 있고, 프리차지가 생겨 타임랙을 발생시키는 것, 이것이 불필요한 액세스사이클의 두 번째이다.
복수의 뱅크구성을 취하는 DRAM은, 1개의 뱅크 내에서의 액세스에 관해서는 상기에 있어서의 2개의 점에서는 동일하지만, 다른 이점이 있다. 즉, 상기한 2번째의 불필요한 액세스사이클의 설명에 있는 어떤 프리차지로 말하여지는 리셋기간은, 하나의 로우어드레스를 액세스한 후, 다른 로우어드레스에서 기억영역을 동작한 때에, 리셋을 실시하는 기간이다. 그러나, 복수의 뱅크구성을 취하면, 그 리셋기간에 있어서도, 리셋기간에 들어있는 뱅크와 다른 뱅크에 있다면, 이미 프리차지가 실시되어 있으므로, 별도의 로우어드레스에 있어서도 기억영역을 동작할 수 있게 된다. 그렇게 하는 것에 의해, 로우어드레스를 입력하여 기억영역을 동작하고 있던 타임랙만으로 리셋기간의 타임랙은 없게 된다. 즉, 주기억부에 대하여, 다른 로우어드레스의 액세스가 3회 연속됐을 때에, 1번째와 2번째의 뱅크는 동일하고, 최후의 뱅크만이 다를 때에, 순번을 통하여 액세스하면, 1번째와 2번째의 액세스의 사이에는 리셋기간을 필요로 한다. 이것이, 3번째의 불필요한 액세스사이클이다.
또, 임시기억부에 기억된 제어신호에 액세스의 우선순위정보가 포함되어 있는 경우에는, 비교·변환부에 있어서, 액세스의 우선순위에 따른 비교·변환을 하게 하여 액세스가 고속으로 되는 순서에 따른 비교·변환보다 액세스의 우선순위에 따른 비교·변환을 우선시키는 것도 가능하다. 상기한 액세스가 고속으로 되는 순서라는 것은, 예컨대 동일한 로우어드레스를 가진 어드레스로의 액세스가 연속하는 순서이고, 또한, 특히 주기억부가 복수뱅크구조인 경우에는, 다른 뱅크의 어드레스로의 어드레스가 연속하는 순서이다.
액세스가 고속으로 되는 순서에 따른 비교·변환보다 액세스의 우선순위에 따른 비교·변환을 우선시키는 비교·변환부의 처리는 예컨대, 이하와 같은 처리이다. 즉, 우선순위의 가장 높은 액세스의 순서를 가장 먼저 비교·변환하여 액세스를 개시한다. 현재실행 중인 것과 로우어드레스가 동일한 것이 있고, 이외의 로우어드레스의 다른 것의 우선순위가 로우어드레스가 동일한 것과 같은 정도이하로 있다면, 로우어드레스가 동일한 것을 먼저 비교·변환하여 액세스를 개시한다. 또한, 현재실행중인 것과 뱅크가 다른 것이 있고, 이외의 뱅크가 같은 것의 우선순위가 뱅크가 다른 것과 같은 정도이하라면, 뱅크가 다른 것을 먼저 비교·변환하여 액세스를 개시한다는 처리이다. 임시기억수단에 기억된 어드레스 및 제어신호에 있어서, 제어신호에는, 우선순위정보와 주기억부에 기록되었는지 독출되었는지의 제어정보가 포함되어 있지만, 이 우선순위정보에 의해 상술한 우선순위가 규정된다.
상기한 바와 같이, 액세스의 우선순위를 고려하여 순서를 결정하여 비교·변환을 실시하면, 예컨대 액세스가 늦게 되었다고 하여도, 중요한 액세스를 우선적으로 실시하는 것이 가능하다. 또한, 복수의 프로세스 또는 복수의 프로세서 중의 무엇인가의 프로세스 또는 프로세서의 액세스가 뒤로 밀리게 되어 그 프로세스 또는 프로세서의 처리가 정체하는 것을 방지할 수 있다.
여기에서, 액세스의 우선순위와 중요한 액세스와 복수의 프로세스 또는 복수의 프로세서의 관계에 대하여 설명한다. 우선순위는 2종류로 사용된다. 제1은, 프로세스 또는 프로세서로부터 2이상 동시에 액세스가 일어났을 때에, 어떤 액세스를 먼저 접수하는 지를 결정하기 위하여 사용되고, 미리 제어신호에 정보로 하여 입력하고 있다. 이 우선순위의 정보에 의해, 동시에 액세스가 발생하여도, 어떤 순서로 임시기억수단에 기억하고 있는가가 명확하게 된다.
제2는, 비교·변환부에 있어서, 비교·변환을 결정할 때의, 비교·변환정보의 하나로서 사용된다. 구체적으로 설명하면, 임시기억수단에는 제어신호의 일부의 정보로서 우선순위도 들어 있고, 비교·변환부에 있어서는, 우선순위에 있어서의 우선도가 가장 높은 것의 순서를 가장 먼저 비교·변환하여 액세스를 개시한다. 현재실행 중인 것과 로우어드레스가 동일한 것이 있고, 그외의 로우어드레스의 다른 것의 우선도가 로우어드레스가 동일한 것과 동일한 정도이하라면, 로우어드레스가 동일한 것을 먼저 비교·변환하여 액세스를 개시하고, 현재실행중인 것과 뱅크가 다른 것이 있고, 그외의 뱅크가 같은 것의 우선도가 뱅크가 다른 것과 같은 정도이하라면, 뱅크가 다른 것을 먼저 비교·변환하여 액세스를 개시하는 것에 의해, 비교·변환을 결정한다. 이 때의 비교·변환정보의 하나로서 사용된다.
그렇지만, 우선순위에 의한 비교·변환을 채용하지 않거나, 우선순위가 고정되어 있으면, 로우어드레스가 동일한 어드레스의 액세스를 계속하거나, 뱅크가 다른 어드레스의 액세스를 계속하도록 비교·변환을 실시하면, 다음에 임시기억수단에 복수의 프로세스 또는 복수의 프로세서로부터 새롭게 기록된 어드레스·제어신호쌍의 쪽이, 현재실행중인 것과 로우어드레스가 동일한 지 혹은 뱅크가 다른 것인 경우에 이하와 같은 현상이 생기는 것으로 된다. 즉, 로우어드레스가 다르게 되어 있고, 뱅크가 동일한 어드레스로 액세스하는 프로세스 또는 프로세서로부터 기록되어 있는 이전의 어드레스·제어신호쌍은, 현재실행중인 것과 로우어드레스가 동일한 지 뱅크가 다른 것이 새롭게 일시기억수단에 기록되어지면, 언제라도 빼내져 버리기 때문에, 현재실행중인 것과 로우어드레스가 동일한지, 뱅크가 다른 것이 새롭게 임시기억수단에 기록되어 연속되어지면, 현재실행중의 것과 로우어드레스가 달라져 있어 뱅크가 같은 어드레스에 액세스하는 프로세스 또는 프로세서는 영구적으로 뒤로 밀려나게 된다.
그래서, 이전의 어드레스·제어신호쌍이 뽑혀질 때마다 비교·변환부에서 이전의 어드레스·제어신호에 대하여, 제어신호의 정보인 우선순위를 올리는 조작을 실시한다. 이와 같은 조작에 의해, 로우어드레스와 뱅크이외에 우선순위도 고려하여 비교·변환부에서 비교·변환을 실시하면, 우선순위가 올라간 이전 어드레스·제어신호쌍은, 복수의 프로세스 또는 프로세서로부터 새로운 어드레스·제어신호쌍으로서, 현재실행중인 것과 로우어드레스가 동일한 것이 임시기억수단에 새롭게 기록된 것으로 하여도, 이전 어드레스·제어신호쌍의 우선순위의 쪽이 높은 경우에는, 예컨대 액세스가 비효율적으로 되어 늦어진다는 것으로 되어도, 먼저 액세스가 개시된다.
이와 같이 하여, 비교·변환부에서 이전 어드레스·제어신호쌍이 뽑혀진 것만으로 비교·변환부에서 우선순위를 조작하는 것에 의해, 새로운 프로세스 또는 프로세서의 액세스에 있어서, 현재실행중인 것과 로우어드레스가 동일한 것이나 뱅크가 다른 것에 대한 어드레스·제어신호쌍이 임시기억수단에 기록되어지는 것에 의해, 항상 뒤로 미루어지도록 현재실행중인 것과 로우어드레스가 다른 뱅크가 동일하도록 어드레스·제어신호쌍을 기록한 프로세스 또는 프로세서의 처리가 영구적으로 정체하는 것을 방지할 수 있게 된다. 요컨대, 우선순위를 고려한 비교·변환이 가능하게 되는 것에 의해, 예컨대, 로우어드레스나 뱅크의 정보에 의한 비교·변환에서, 빼내어진 것으로 된 어드레스·제어신호쌍에 대하여 우선순위를 세우는 것이 가능하게 되고, 영구적으로 실행되는 것이 아닌 제어가 존재할 수 없도록 설계하는 것이 가능하다. 또, 영구적으로 정체하는 처리로 말하는 것은, 새로운 프로세스 또는 프로세서의 액세스에 있어서, 로우어드레스가 동일한 것이나 뱅크가 다른 것에 대한 어드레스·제어신호쌍이 임시기억수단에 기록되어진 것에 의해, 항상 뒤로 미루어지도록 한 로우어드레스가 다른 뱅크가 동일한 것과 같은 어드레스·제어신호쌍을 기록한 프로세스 또는 프로세서의 처리이다.
또한, 이 제어신호에 들어있는 우선순위정보를 적극적으로 이용하여, 어떤 프로세스 또는 프로세서가, 실시간성이 필요하지 않은 이외의 액세스에 비하여 중요한 액세스인 실시간액세스가 필요한 음성데이터나 화상데이터를 액세스하는 경우에, 우선순위를 최초로부터 높게 하는 것에 의해, 비교·변환부에서는 우선순위도 고려하여 비교·변환을 실시하는 것이 가능하고, 이외의 액세스에 대기시킨 것이 없게 액세스를 개시하는 것이 가능하다.
상기한 임시기억수단은, 상술한 바와 같이 주기억부를 액세스하기 위한 어드레스 및 제어신호를 임시유지하여 둔 것이지만, 이 중의 제어신호에는 우선순위정보와, 주기억부에 데이터를 기록하는 지, 주기억부로부터 데이터를 독출하는 지를 제어하는 제어정보가 포함되어 있다. 상술한 어드레스와, 제어정보가 포함된 제어신호를 쌍으로서 주기억부로 액세스하는 것에 의해 주기억부의 특정 어드레스에 있어서의 데이터의 읽기 또는 쓰기의 액세스가 실시된다. 이 때문에, 어드레스와 제어신호는 쌍으로 되어 있을 필요가 있다. 임시기억수단에는, 1쌍으로되어 있는 어드레스와 제어신호(이하, 어드레스·제어신호쌍으로 기재한다)가 복수개 기억되어 있다.
또한, 비교·변환부는, 예컨대 임시기억수단의 각 어드레스에 기억된 어드레스·제어신호쌍에 포함된 정보에 기초하여 임시기억수단의 어드레스의 순번을 결정하고 있는 순서결정부와, 순서결정부에서 결정된 순서를 기억하여 둔 순서기억 입력변환부와, 순서기억 입력변환부의 기억내용에 따라 임시기억수단에 데이터독출용의 출력어드레스를 부여하는 출력어드레스 발생부로 구성된다.
또한, 상기한 임시기억수단에 기억된 어드레스 및 제어신호중의 어드레스의 정보로서, 주기억부로 액세스하는 어드레스를 나타내는 어드레스정보와 주기억부로 액세스하는 뱅크를 나타내는 뱅크정보(주기억부가 복수뱅크구조인 경우만)가 있다. 또한, 제어신호의 정보로서, 예컨대 임시기억수단의 어드레스가 비어 있는 것을 나타내는 빈 플래그와, 프로세스 또는 프로세서에 있어서의 액세스의 우선순위를 나타내는 우선순위정보와, 주기억부에 대하여 독출을 하는 것인가 기록을 하는 것인가를 나타내는 읽기/쓰기정보와, 프로세서(혹은 제어신호)를 특정하는 번호를 나타내는 제어번호가 있다.
그리고, 우선순위정보, 어드레스정보, 뱅크정보를 사용하는 순서결정부에 있어서, 어드레스 및 제어신호의 순서를 결정하고, 순서기억 입력변환부에 있어서 순서를 기억시켜, 데이터버스로의 액세스에 있어서, 제어번호로 프로세스 또는 프로세서를 특정하여 읽고 쓰기를 실시한다. 또한, 어드레스 조사부가 빈 플래그를 기초로 임시기억수단의 빈 어드레스를 조사한다.
상기한 빈 플래그와 우선순위정보와 읽기/쓰기정보와 제어번호와는, 어드레스·제어신호쌍에 있어서의 제어신호정보의 일부이다. 또한, 어드레스정보와 뱅크정보와는 어드레스·제어신호쌍에 있어서의 어드레스정보의 일부이다. 이하, 각 정보에 대하여 상세하게 설명한다.
빈 플래그는, 어드레스·제어신호쌍 중의 제어신호의 일부로서 정보가 들어 있고, 임시기억수단에 있어서의 빈 어드레스를 조사하는 어드레스 조사부가, 임시기억수단중의 빈 어드레스를 조사하기 위해 사용되고 있다. 임시기억수단에는, 어드레스·제어신호쌍을 기억하여 둔 영역이 복수개 있다. 어드레스·제어신호쌍을 기억하여 둔 영역이 비어 있는지 어떤지를 나타내기 위해, 빈 플래그가 각 어드레스·제어신호쌍을 기억하여 둔 영역에 각각 1개씩 있고, 어드레스·제어신호쌍이 기록되어지면, 빈 플래그가 비어 있지 않은 것을 나타낸다. 여기서는, 빈 플래그가 높은 레벨일 때에는 비어있지 않은 것으로 하고, 빈 플래그가 낮은 레벨일 때는 비어 있는 것으로 하면, 어드레스·제어신호쌍이 기록되어진 상태에서는, 빈 플래그가 높은 레벨로 된다. 어드레스·제어신호상이 주기억부의 액세스에 사용되어 독출되면, 빈 플래그는 높은 레벨로부터 낮은 레벨로 변화한다. 이 빈 플래그가 낮은 레벨인 영역을 조사하는 것이 어드레스 조사부이다.
제어번호는, 어드레스·제어신호쌍중의 제어신호의 일부로서 정보가 들어 있고, 두 개의 의미가 있다. 첫 번째는, 복수의 어드레스·제어신호쌍이 임시기억수단에 기록되어 있는 경우에 있어서, 비교·변환의 제어를 순서결정부에서 실시하여 순서기억 입력변환부에 들어 있는 어드레스·제어신호쌍에 대응한 번호로서 사용된다. 이 경우, 특정의 어드레스·제어신호쌍에 대응하여 있으므로, 어떤 어드레스·제어신호쌍인가를 인식하기 위해 사용된다. 두 번째는, 복수의 프로세스 또는 복수의 프로세서로부터 기록된 어드레스·제어신호쌍에 응답하여 주기억부와 데이터의 읽고 쓰기를 실시할 때에, 어떤 프로세스 또는 프로세서인가를 특정하여, 데이터버스에서 특정의 프로세스 또는 프로세서와 액세스를 실시하기 때문이다.
우선순위정보는, 어드레스·제어신호쌍 중의 제어신호정보의 일부로서 있고, 우선순위의 높이가 기술되어 있으며, 우선순위 결정부에서 먼저 사용되어 우선순위 순으로 어드레스·제어신호쌍의 접수를 해주는 것으로 이용된다. 더 한가지는, 후술하는 우선순위정보를 이용하여 순서결정부에서 순서를 비교·변환하기위한 정보로서 이용된다.
읽기/쓰기 정보는, 어드레스·제어신호쌍 중의 제어신호정보의 일부이고, 주기억부에서 데이터를 독출하는 것인지 주기억부에 데이터를 기록하는 것인지 어떤가라는 것이 기재되어 있고, 제어신호 타이밍생성부에 있어서 주기억부에 액세스된 때의 결정과, 데이터버스에 있어서의 독출하는 방향인지 기록하는 방향인지의 데이터 방향을 결정할 때에 사용된다.
어드레스정보는, 어드레스·제어신호쌍 중의 어드레스의 일부로서 정보가 들어 있고, 임시기억수단에 기억된다. 이 어드레스정보에는, 프로세스 또는 프로세서가, 주기억부에 대하여 액세스를 실시하기 위한 로우어드레스와 컬럼어드레스가 기록되어 있고, 이 정보를 제어신호 타이밍생성부가 사용하는 것에 의해, 주기억부의 특정 어드레스에 있어서의 데이터에 대하여 액세스가 실시된다.
뱅크정보는, 어드레스·제어신호쌍중의 어드레스의 일부로서 정보가 들어 있고, 임시기억수단에 기억된다. 이 뱅크정보에는 프로세스 또는 프로세서가 주기억부의 어떤 뱅크에 액세스를 실시하는 지를 나타내는 데이터가 기재되어 있고, 이 정보를 제어신호 타이밍생성부가 사용하는 것에 의해, 주기억부에 액세스할 때에 뱅크가 특정된다.
이하에, 비교·변환부에 있는 순서결정부와 순서기억 입력변환부와 출력어드레스 발생부와 제어신호 타이밍생성부의 동작을 설명한다. 임시기억수단에 기억되어 있는 어드레스·제어신호쌍의 순번을 결정하고 있는 순서결정부에서는, 이 우선순위정보에서 먼저 순번을 입력·변환하고, 다음에 어드레스정보로 있는 로우어드레스의 상위를 입력·변경하고, 최후에 뱅크정보로 있는 뱅크의 상위를 입력·변경하여 그 결과를 순서기억 입력변환부에 기억시킨다. 그리고, 순서기억 입력변환부에 기억된 순번에 따라서, 출력어드레스 발생부가 임시기억수단에 대하여 임시기억수단의 내용을 독출하기 위한 임시기억수단의 출력용의 어드레스를 부여한다. 더욱이, 제어신호 타이밍생성부에서는, 임시기억수단으로부터 독출된 어드레스·제어신호쌍에 있어서의 어드레스정보, 읽기/쓰기 정보 및 뱅크정보를 사용하여, 주기억부에 대하여 타이밍좋게 액세스를 실시한다.
또한, 임시기억수단에는 어드레스·제어신호부 이외에 데이터기록부를 설치하여도 좋다. 이 데이터기록부는, 쓰기동작시에 사용되는 것이므로, 이하에서 데이터기록부를 설치한 이유에 대하여 설명한다. DRAM에는, 기록시와 독출시에는, 제어하는 신호의 액세스의 타이밍중에서, 데이터가 필요하게 되는 타이밍이 다르고, 기록시의 데이터의 쪽이 독출할 때의 데이터보다도, 액세스의 기간중에서 보다 빠른 타이밍을 필요로 하므로, 임시기억수단에 어드레스·제어신호쌍을 기록할 때와 동시에 유지하여 두는 것이다.
이와 같이 구성하면, 임시기억수단에 비교·변환에 필요한 정보는, 미리, 빈 플래그와 우선순위정보와, 어드레스와, 뱅크정보와, 읽기/쓰기 정보와, 제어번호인 것이 결정되어 있고, 각 정보에 대응한 비교·변환이 가능하다. 또한, 미리, 제어신호로서 인정되는 정보가 정해져 있는 것에 의해, 각각의 비교·변환에 필요한 정보가 어떤 부분에 있는지가 결정된다.
여기에서, 각 정보에 대응한 비교·변환에 대하여 설명한다. 임시기억수단에 있어서 기록되어 있는 어드레스·제어신호쌍에 있어서의 정보로서는, 빈 플래그와, 우선순위정보와, 어드레스정보와, 뱅크정보와, 읽기/쓰기 정보와, 제어번호가 있다. 빈 플래그는 상술한 임시기억수단에 있어서의 어드레스·제어신호쌍을 기록하기 위한 빈 공간이 있는 것을 나타내기 위하여 이용된다. 비교·변환부에 있는 순서결정부와 순서기억 비교·변환부에는, 프로세스 또는 프로세서의 액세스의 비교·변환을 실시한다. 그리고, 액세스의 비교·변환을 실시할 때에, 어드레스·제어신호쌍에 있어서의 정보를 이용한다.
먼저, 임시기억수단에 있어서의 빈 플래그가 동작되지 않은 어드레스·제어신호쌍의 저장부분에 프로세스 또는 프로세서로부터의 액세스에 있어서의 어드레스·제어신호쌍이 기록되어 있다. 순서결정부에서는 기록되어 있는 어드레스·제어신호쌍에 있어서의 정보 중, 우선순위정보를 사용하여, 가장 우선순위가 높은 어드레스·제어신호쌍의 순번이 앞서도록, 순서기억 비교·변환부에 기억된 액세스의 순서의 비교·변환을 실시한다. 그렇게 하지 않은 경우, 다음에 로우어드레스를 포함한 어드레스정보를 사용하여, 현재실행중인 것과, 로우어드레스가 동일한 어드레스·제어신호쌍의 순번이 앞서도록, 순서기억 비교·결정부에 기억된 액세스의 순서의 비교·변환을 실시한다. 이상과 같은 것이 없는 경우, 다음에 뱅크정보를 사용하여, 현재 실행중인 것과 뱅크가 다른 것의 액세스의 순번이 앞서도록, 순서기억 비교·변환부에 기억된 액세스의 순서의 비교·변환을 실시한다. 이 뱅크정보에 의한 비교·변환은, 복수뱅크구조의 주기억부에 한하여 실시되고, 단일 뱅크구조의 주기억부의 경우에는 당연 뱅크정보에 의한 비교·변환은 실시되지 않는다.
순서기억 비교·변환부에 기억된 순서에 따라서, 임시기억수단에 대하여 어드레스·제어신호쌍을 특정할 수 있도록 한 임시기억수단에의 출력용 어드레스가 출력어드레스 발생부로부터 출력된다. 이것에 의해, 임시기억수단으로부터 어드레스·제어신호쌍 중, 주기억부에의 액세스에 필요하고, 데이터버스에 있어서의 데이터입출력의 때에 프로세스 또는 프로세서를 특정하할 수 있는 제어번호와, 로우어드레스와 컬럼어드레스를 포함한 어드레스정보와, 주기억부에 있어서의 뱅크와 특정할 수 있는 뱅크정보와, 주기억부에 대하여 독출인지 기록인지의 정보인 읽기/쓰기 정보가 제어신호 타이밍생성부로 출력된다.
제어신호 타이밍생성부에서는, 주기억부에 대한 제어를 실시한다. 구체적으로는, 제어신호 타이밍생성부는, 먼저, 읽기/쓰기 정보를 사용하여, 주기억부에 대한 액세스가 독출동작인지 기록동작인지를 특정하여, 그것에 대응한 데이터입출력의 동작의 타이밍을 데이터버스에 부여하고, 뱅크정보를 원 주기억부의 뱅크를 특정하고, 특정된 뱅크에 대하여 읽기/쓰기 정보에 따른 독출인지 기록인지의 액세스를 실시한다. 그리고, 로우어드레스를 먼저 어드레스정보로부터 추출하여 주기억부에 로우어드레스를 전달하여 입력한다. 다음에, 컬럼어드레스를 어드레스정보로부터 추출하여 주기억부에 컬럼어드레스를 입력하는 것을 전달하여 입력한다. 그렇게 하는 것에 의해, 주기억부에 대하여, 특정의 뱅크, 특정의 어드레스에 대하여, 독출인지 기록인지를 실시하는 것이 가능하게 된다.
DRAM이라면, 로우어드레스가 동일할 때에는, 상술한 바와 같이 프리차지라는 리셋기간과 로우어드레스에 접속된 영역을 동작시킨다는 기간의 타임랙없이 다른 컬럼어드레스에 있어서의 데이터에 대하여 액세스가 가능하고, 뱅크가 다른 경우에는, 상술한 바와 같이 프리차지라는 리셋기간만의 타임랙이 없이 액세스가 가능하게 되므로, 그렇게 말한 어드레스정보나 뱅크정보가 제어신호 타이밍생성부에 들어 있는 경우에는, 상술한 타임랙을 없게 하도록 주기억부에 대하여 액세스를 실시한다.
도 1은, 본 발명의 실시예에 있어서 복수어드레스 유지기억장치의 일 예의 구성을 나타내는 블록도이다.
도 2는, 본 발명의 실시예에 있어서 복수어드레스 유지기억장치의 어드레스 임시기억부의 일 예의 구성을 나타내는 블록도이다.
도 3은, 본 발명의 실시예에 있어서 복수어드레스 유지기억장치의 비교·교환부의 일 예의 구성을 나타내는 블록도이다.
도 4는, 비교·교환부 중의 순서결정부의 플로차트이다.
도 5는, 비교·교환을 실시하는 경우의 액세스의 동작을 나타내는 타이밍도이다.
도 6은, 비교·교환을 실시하지 않는 경우의 액세스의 동작을 나타내는 타이밍도이다.
도 1에, 본 발명의 실시예에 있어서 복수어드레스 유지기억장치의 블록도를 나타내고, 도 2에, 상기한 복수어드레스 유지기억장치의 어드레스 임시기억부의 블록도를 나타내고, 도 3에, 상기한 복수어드레스 유지기억장치의 비교·교환부를 나타낸다.
도 1 내지 도 3에 있어서, 부호101은 복수어드레스 유지기억장치에 대하여 액세스된 데이터를 유지하는 주기억부이다. 부호105에서 부호107은 제1의 프로세서에서 제3의 프로세서이다. 부호207은 어드레스버스, 부호218은 주기억부(101)의 데이터입출력을 실시하는 데이터버스이다. 부호103은 프로세서(105∼107)에서 주기억부(101)에의 액세스로서 온, 주기억부(101)에의 어드레스·제어신호 쌍을 임시저장하고, 주기억부(101)에 대하여 어드레스나 뱅크정보 등을 부여하여 데이터의 읽고 쓰기의 제어신호를 생성하여 제어를 실시하는 어드레스 임시기억부이다. 부호102는 어드레스 임시기억부(103)에 저장된 어드레스·제어신호쌍의 순서의 비교·변환을, 어드레스·제어신호쌍의 정보에 따라서 실시하는 비교·변환부이다.
부호104는 제어번호를 추가하여 주기억부(101)에서 독출된 데이터를 데이터버스(218)로 출력하는 데이터출력부이다.
여기에서, 제어번호에 대하여 설명한다. 어드레스버스(207)와 데이터버스(218)가 독립하여 있기 때문에, 프로세서(105~107)로부터 받은 주기억부(101)에의 액세스를 특정하는 정보로서 이용하는 제어번호가 설치되어 있다. 이 경우, 프로세서(105~107)로부터의 액세스마다에 제어번호가 할당되고, 할당된 제어번호는 프로세서(105~107)에서의 액세스된 어드레스·제어신호쌍에 추가된 정보로서, 어드레스 임시기억부(103)의 어드레스·제어신호쌍으로서 저장된다. 그리고, 주기억부(101)에 대하여 어드레스 임시기억부(103)가 독출과 기록의 동작을 실시할 때에는, 데이터버스(218)에 있어서 어떤 프로세서(105~107)가 데이터버스(218)에 대하여 액세스를 실시하는 것이 가능한 지 특정하므로, 이 제어번호라는 정보를 추가한다. 이것에 의해, 데이터버스(218)에 있어서, 특정된 프로세서(105~107)가 데이터의 읽고 쓰기를 실시하는 것이 가능하게 된다.
다음에, 제어번호와 각 프로세서(105~107)와의 관계 및 제어번호에 근거하여 각 프로세서(105~107)의 동작에 대하여 설명한다. 제어번호는, 예컨대, 프로세서(105)에 대하여는 105, 프로세서(106)에 대하여는 106, 프로세서(107)에 대하여는 107이라는 번호가 할당되어 있다. 그리고, 이 제어번호가 어드레스·제어신호쌍의 정보의 일부로서 추가된 어드레스·제어신호쌍이, 어드레스버스를 거쳐 어드레스 임시기억부(103)에 저장된다.
그리고, 저장된 어드레스·제어신호쌍의 정보에 대하여, 주기억부(101)에의 액세스의 순번이 돌아와서, 주기억부(101)에의 읽고 쓰기 등의 제어가 시작된 때에, 데이터버스(218)에 있어서의 데이터에 대하여 읽고 쓰기가 필요하게 된다. 그 때에, 데이터버스(218)는 어드레스버스(207)와 독립하여 있으므로, 어떤 프로세서(105~107)로부터의 액세스인 지가 특정될 수 없다. 그래서, 제어번호를 추가하여 데이터버스(218)를 사용하는 것에 의해, 105라는 제어번호인 데이터버스(218)가 동작하고 있을 때에는, 제1프로세서(105)가 어드레스버스(207)를 통하여 액세스하도록 한 읽고 쓰기 등의 어드레스·제어신호쌍의 정보에 대하여 프로세서(105)와 데이터의 읽고 쓰기의 동작을 실시한다. 제어번호가 106, 107인 경우도 동일하다.
부호108은 제1프로세서(105)로부터 제3프로세서(107)까지의 각 프로세서보다 주기억부(101)에 대하여 실시하는 액세스의 우선순위를 결정하는 우선순위 결정부이다. 이 우선순위 결정부(108)는, 구체적으로는 예컨대, 제1프로세서(105)로부터 제3프로세서(107)까지의 각 프로세서보다 주기억부(101)에 대하여 실시하는 액세스에 있어서, 제1프로세서(105)에서 제3프로세서(107)의 우선순위 중 제1프로세서(105)의 우선순위가 가장 높고, 제3프로세서(107)의 우선순위가 가장 낮게 설정되어 있을 때에, 이들의 우선순위의 설정에 따른 우선순위가 높은 순서로 접수를 실시하는 기능을 가진다.
부호111은 어드레스 임시기억부(103) 중에서 액세스된 어드레스·제어신호쌍을 임시 저장하여 두는 임시기억수단이고, 임시기억수단의 추출어드레스와 제어신호를 저장하여 두는 어드레스·제어신호부(112)와 주기억부(101)에 기록되어진 데이터를 저장하여 두는 데이터기록부(113)로 구성되어 있다.
상기한 데이터기록부(113)는, 이하와 같은 목적으로 설치되어 있다. 즉, 주기억부(101)에의 기록할 때와 독출할 때에는, 제어를 실시하는 중에 데이터가 필요로 하는 타이밍이 다르고, 기록할 때가, 독출할 때보다도 빠른 타이밍으로 데이터가 필요하게 된다. 또한, 기록할 때에는 프로세서(105~107)에 대하여, 주기억부(101)에서의 데이터가 필요한 것이 아니므로, 미리 프로세서(105~107)로부터 데이터를 읽어 넣어 두는 것이 가능하다. 그래서, 기록할 때는, 미리 어드레스 및 제어신호와 함께 기록데이터도 임시기억하여 두는 것으로 하고 있다. 이 기록데이터를 저장하여 두는 부분이 데이터기록부(113)이다.
부호109는, 임시기억수단(111)의 빈 어드레스를 조사하는 어드레스 조사부이다. 여기에서, 어드레스 조사부(109)에 대하여 구체적으로 설명한다. 임시기억수단(111)내의 어드레스·제어신호부(112)에 있어서, 어드레스·제어신호쌍을 복수개 저장하는 영역에는, 어드레스·제어신호쌍을 저장하는 각각의 어드레스·제어신호부(112)의 어드레스에 대하여, 어드레스버스(207)로부터 후술하는 입력어드레스 발생부(110)에 의해 발생된 어드레스에 기록된 때에는 하이레벨로 되고, 제어신호타이밍생성부(114)에 독출된 때에는 로우레벨로 되는 빈 플래그를 각각 가지고 있다. 이 빈 플래그가 로우레벨인 어드레스·제어신호부(112)의 어드레스는 비어 있다는 것이다. 어드레스 조사부(109)에 대하여, 어드레스·제어신호부(112)의 어드레스에 있어서의 빈 플래그의 신호 각각이, 어드레스·제어신호부(112)의 어드레스가 특정될 수 있도록 접속되어 있고, 로우레벨인 빈 플래그를 어드레스 조사부(109)에서 조사하는 것에 의해, 어드레스·제어신호부(112)의 어떤 어드레스가 비었는 지를 인식할 수 있게 된다.
부호110은 어드레스 조사부(109)의 조사결과에 근거하여 임시기억수단에 대하여 입력된 제어신호의 어드레스를 발생시키는 입력어드레스 발생부이다. 114는 주기억부(101)에 대하여 독출하거나 기록 등을 동작시키는 주기억 제어신호를 타이밍 좋게 발생시키는 제어신호 타이밍생성부이다. 이 제어신호 타이밍생성부(114)는, 임시기억수단(111)으로부터의 어드레스·제어신호쌍의 정보를 사용하여, 주기억 제어신호를 주기억부(101)에 대하여 발생시킨다.
부호115는 제어신호를 비교·변환하는 순서를 결정하는 순서결정부이다. 이 순서결정부(115)는, 비교를 실시하는 CPU를 가지고, 어드레스·제어신호부(112)의 정보를 독출하여, 그 정보와 현재 주기억부(101)가 동작을 실시하고 있는 어드레스·제어신호쌍의 정보를 사용하여 도 4의 플로차트와 같이 비교를 실시하여, 비교·변환하는 순서를 결정한다. 이 순서결정부(115)에는, 프로세서(105~107)로부터 액세스가 발생하여 어드레스·제어신호부(112)에 어드레스·제어신호쌍이 기록됐을 때에 비교와 순서결정을 실시한다. 도 4의 플로차트에 대하여는 후술한다.
부호116은 비교·변환된 순서를 기억하고 있는 순서기억 입력변환부이다. 이 순서기억 입력변환부(116)에는, 순서번호와 어드레스·제어신호부(112)에 있어서의 어드레스와 대응 결합되어 있고, 순서번호는 순서결정부(115)로부터 쓰기변경이 가능하고, 처음 작은 값의 순서번호가 어드레스·제어신호부(112)에 있어서의 어드레스로서 출력어드레스 발생부(117)로 출력된다. 순서번호는 하나 독출된 때마다 앞당겨진다. 출력어드레스 발생부(117)는 순서기억 입력변환부(116)의 순번으로 임시기억수단(111)에서 어드레스·제어신호쌍을 출력시키는 기능을 가진다.
부호201은 비교·변환정보이고, 임시기억수단(111)의 어드레스·제어신호부(112)에 기억된 어드레스·제어신호쌍을 가리킨다. 부호202는 출력어드레스 발생부(117)로부터 출력된 출력어드레스이다. 부호203은 주기억부(101)에 대하여 읽고 쓰기 등의 제어를 주기억부(101)에 대한 어드레스 등을 포함하여 실시하는 주기억부(101)용의 제어신호이다. 부호204는 데이터기록신호이다. 부호205는 어드레스 임시기억부(103)로부터 데이터출력부(104)로 출력된 출력제어번호이다. 부호206은 주기억부(101)로부터 독출된 독출데이터신호이다. 부호208은 데이터출력부(104)로부터 데이터버스(218)로 보내어 지든지, 또는 데이터버스(218)로부터 어드레스 임시기억부(103)에 보내어지는 데이터신호이다.
부호209는 제1프로세서(105)에서의 액세스를 요구하기 위한 제1요구신호이다. 부호210은 제2프로세서(106)에서의 액세스를 요구하기 위한 제2요구신호이다. 부호211은 제3프로세서(107)에서의 액세스를 요구하기 위한 제3요구신호이다.
부호212는 제1프로세서(105)에서 출력된 제1어드레스·제어신호쌍이다. 부호213은 제1프로세서(105)에 대하여 읽고 쓰기를 실시하기 위한 데이터버스(218)상에 송출된 제1프로세서데이터이다. 부호214는 제2의 프로세서(106)에서 출력된 제2어드레스·제어신호쌍이다. 부호215는 제2프로세서(106)에 대하여 읽고 쓰기를 실시하기 위한 데이터버스(218)상에 송출된 제2프로세서데이터이다. 부호216은 제3프로세서(107)에서 출력된 제3어드레스·제어신호쌍이다. 부호217은 제3프로세서(107)에 대하여 읽고 쓰기를 실시하기 위해 데이터버스(218)상에 송출된 제3프로세서데이터이다.
부호219는 우선순위 결정부(108)에 부착된 프로세서(105~107)의 요구가 결정된 때에 어드레스 조사부(109)로 출력하는 결정요구신호이다. 부호220은 어드레스·제어신호부(112)의 비어 있는 어드레스를 나타내고, 어드레스 조사부(109)에서 입력어드레스 발생부(110)에 출력된 어드레스신호이다. 부호221은 프로세서(105~107)에서 어드레스버스(207)에 출력되어 있는 어드레스·제어신호쌍을 기록하여 어드레스·제어신호부(112)에 있어서의 어드레스를 나타내는 입력어드레스이다. 부호222는 제어신호 타이밍생성부(114)가 주기억부(101)에 대하여 주기억 제어신호를 타이밍 좋게 발생시키기 위해 필요한 어드레스·제어신호부(112)로부터 독출된 어드레스·제어신호쌍으로 이루어진 제어정보이다. 부호223은 어드레스·제어신호부(112)의 각 어드레스·제어신호쌍과 함께 기록되어 있고, 프로세서(105~107)를 특정하기 위한 번호를 나타내는 제어번호이다. 부호224는 주기억부(101)에 대하여 데이터를 기록할 때에 프로세서(105~107)에서의 기록용 데이터를 미리 기억하고 있는 데이터기록부(113)에서 출력된 원(元)기록 데이터신호이다. 부호225는 어드레스·제어신호부(112)에 있어서 복수의 어드레스·제어신호쌍 각각의 어드레스에 대하여 비어 있는 경우에는 비어 있는 것을 나타내는 플래그정보이다. 부호226은, 순서결정부(115)에서 결정된 어드레스·제어신호부(112)에 저장되어 있는 액세스의 순번 중, 어떤 어드레스·제어신호쌍과 어떤 어드레스·제어신호쌍을 입력·변경하는 지를 나타내는 순서결정신호이다. 부호227은 순서기억 입력변환부(116)에서 순서가 정해지고, 정하여진 순서로 출력된 어드레스·제어신호부(112)에 있어서 어드레스를 나타내는 출력어드레스 결정신호이다.
여기서, 복수의 프로세서(105~107)의 요구신호(209~211)와 어드레스 임시기억부(103)중의 우선순위 결정부(108)의 관계에 대하여 설명한다. 제1프로세서(105)와 제2프로세서(106)와 제3프로세서(107)로부터 동시에 주기억부(101)에 대하여 액세스의 요구가 발생했다고 한다. 요구는, 요구신호(209~211)를 사용하여 실시된다. 요구신호(209~211)가 나오면, 어드레스 임시기억부(103)에 있어서의 우선순위 결정부(108)에 입력되고, 제1프로세서(105)의 우선순위가 가장 높고, 제3프로세서(107)의 우선순위가 가장 낮은 경우에는, 우선순위 결정부(108)에서는, 제1프로세서(105)의 액세스로부터 먼저 접수를 하고, 제1프로세서(105)에 대하여 요구신호(209)를 사용하여 요구를 접수한 것을 통지한다.
제1프로세서(105)에서는 요구가 접수된 것이 통지되면, 어드레스버스(207)에 대하여 어드레스·제어신호쌍을 출력한다. 동시에 제1프로세서(105)로부터의 어드레스·제어신호쌍을 접수하도록, 결정요구신호(219)를 어드레스 조사부(109)로 출력한다. 결정요구신호(219)를 접수한 어드레스 조사부(109)에서는, 어드레스·제어신호부(112)에 있어서의 빈 어드레스를, 비어 있는 어드레스에 대하여 비어 있는 것을 나타내는 빈 플래그정보를 사용하여 빈 어드레스를 인식하고, 빈 어드레스를 나타내는 빈 어드레스신호를 입력어드레스 발생부(110)로 출력한다. 이 때, 빈 플래그정보로서는 어드레스·제어신호부(112)에 있어서의 각 어드레스에 대하여 각각 빈 플래그가 있어도 좋다. 입력어드레스 발생부(110)에서는 빈 어드레스신호를 어드레스·제어신호부(112)에의 기록어드레스이고, 입력어드레스로서 어드레스·제어신호부(112)로 출력한다.
또한, 동시에 주기억부에 필요한 경우의 우선순서는, 우선순위 결정부(108)에서 결정하고, 이 실시예에서는 제1프로세서(105), 제2프로세서(106), 제3프로세서(107)의 순번으로 된다. 그렇지만, 어드레스 임시기억부(103)에 저장되어져 버린 후는, 우선순위는 내부의 우선순위정부에 의해 동작한다. 내부의 우선순위로서는, 어드레스·제어신호부(112)의 어드레스·제어신호쌍에 기록되어 있는 정보 중 하나에 우선순위정보가 있고, 그 우선순위정보를 사용한다. 프로세서에 있어서의 우선순위와는 다른 경우도 있다.
상기한 우선순위는, 프로세서의 우선순위라는 것은 아니고, 프로세서의 액세스에 있어서의 우선순위를 의미한다. 그러므로, 본 발명에서 말하는, 중요한 액세스라는 것은, 특정의 프로세서로 한정되는 것은 아니고, 우선순위를 높게 해야하는액세스이다. 이와 같은 우선순위의 설정방법을 채용하면, 예컨대, 음성이나 화상정보와 같은 리얼타임성이 필요한 액세스가 온 경우에, 그 액세스의 우선순위를 높게 할 수 있도록, 어드레스·제어신호쌍에 있어서의 우선순위정보에 있어, 우선순위를 높게 설정하는 것으로, 비교·변환부(102)의 순서결정부(115)에 있어서, 먼저 그 액세스를 실시하도록, 대응하는 어드레스·제어신호쌍의 순서를 미리하는 것이 가능하게 된다.
이하의 설명에서는, 상위 8비트가 로우어드레스, 하위 8비트가 컬럼어드레스이고, 로우어드레스가 같은 경우에는, 컬럼어드레스는 클럭마다 변하여도 따를 수 있는(페이지액세스) 것으로 하고, 뱅크는 M과 N의 2뱅크 구성이고, 뱅크가 다른 때에는, 프리차지의 필요가 없고, 연속하여 액세스할 수 있다고 한다. 더욱이 로우어드레스를 투입하고 나서, 컬럼어드레스를 투입할 때까지는 2클럭을 필요로 하고, 컬럼어드레스가 투입되어 있으므로 데이터가 출력될 때까지는 2클럭을 필요로 한다. 그러므로, 로우어드레스가 동일하고 컬럼어드레스만이 다른 경우에는, 연속한 액세스가 가능하다. 그리고, 프리차지로서 4클럭을 필요로 한다. 어드레스의 표시방법으로서 처음의 0x는 16진수인 것을 나타내고, 다음의 M또는 N은 뱅크를 나타내고 나머지로 어드레스 그것을 나타내는 것으로 한다. 또한, 어드레스의 비교·변환의 처리는 프로세서(105~107)에서 액세스가 올 때에 가고, 본 예의 경우에는, 클럭 마다에 액세스가 ABCD로 오고 있으므로, 클럭 마다에 비교·변환처리를 실시하고 있다.
그리고, 어드레스·제어신호부(112)에는, 비교·변환하기 위해 필요한 데이터로 하고, 각 어드레스·제어신호쌍 마다에 그 기억부분으로 어드레스·제어신호쌍이 들어있는지 어떤지를 나타내는 빈 플래그, 우선순서를 나타내는 우선순위정보, 어드레스를 나타내는 어드레스정보, 뱅크를 나타내는 뱅크정보, 읽기인지 쓰기인지를 나타내는 읽기/쓰기 정보, 제어번호를 나타내는 제어번호정보가 들어있다고 한다. 이들의 정보는, 이하와 같이 하여 어드레스·제어신호부(112)에 저장된다. 즉, 우선순위정보는, 예컨대 리얼타임성이 필요한 액세스가 있었던 경우에는 높고, 늦어도 괜찮은 거의 사용하지 않는 데이터인 경우에는 낮게 되도록 프로세서(105~107)측으로 생성되고, 프로세서(105~107)는 주기억부(101)에 있어서의 특정의 뱅크, 특정의 어드레스의 데이터에 대하여, 읽는 것인지 쓰는 것인지의 액세스를 실시하기 위한 어드레스정보, 뱅크정보, 읽기/쓰기 정보를 생성하고, 조금 전의 우선순위정보와 합쳐져서 어드레스·제어신호부(112)에 저장된다. 그 때에 어드레스·제어신호부(112)에서는 프로세서(105~107)를 특정할 수 있는 제어번호를 추가하여 어드레스·제어신호쌍으로서 저장한다.
또한, 읽기/쓰기 정보는, 비교·변환 자체의 제어로는 사용되지 않는다. 다만, 주기억부(101)에 대하여 주기억 제어신호를 생성하는 때에는, 주기억부(101)의 데이터를 읽는 것인지 쓰는 것인지에 의해 데이터가 필요로 하는 타이밍이 다르게 되고, 데이터의 방향도 역으로 되므로, 읽기/쓰기 정보도 어드레스·제어신호쌍 중에 포함되어 있다. 또한, 제어번호정보도 비교·변환 자체에는 사용되지 않고, 데이터버스(218)에 있어서의 프로세서(105~107)의 데이터액세스 특정용으로 사용되고 있으므로, 동일하게 어드레스·제어신호쌍 중에 포함된다.
이상과 같은 방법의 경우의 동작을 이하에서 나타낸다.
제1프로세서(105)는 주기억부(101)에 대하여, 0xM0000번지의 어드레스 데이터를 읽고, 제2프로세서(106)는 주기억부(101)에 대하여, 0xM1200번지의 어드레스 데이터를 읽고, 제3프로세서(107)는 주기억부(101)에 대하여, 0xM0080번비의 어드레스의 데이터를 읽고, 다시 제1프로세서(105)가 주기억부(101)에 대하여, 0xNA000번지의 어드레스의 데이터를 읽고, 요구로서, 제1에서 제3의 프로세서의 최초의 요구가 동시에 와서, 2클럭 세운 후에 제1프로세서의 요구가 온다고 한 동작을 고려한다. 그 타이밍차트를 도 5에 나타낸다. 도 5에 있어서, A가 제1프로세서의 최초의 요구, B가 제2프로세서의 요구, C가 제3프로세서의 요구, D가 제1프로세서의 2번째 요구로 한다.
어드레스·제어신호쌍으로서는, 우선순위 결정부(108)에서, 제1프로세서에서 제3프로세서의 순번으로 비교되어 결정되고 있다. 임시기억수단(111)의 빈 어드레스를 어드레스·제어신호부(112)에 어떤 빈 플래그를 이용하여 어드레스 조사부(109)가 조사하고, 우선순위에 의한 요구의 순번에 입력어드레스 발생부(110)에 대하여 빈 어드레스를 가르쳐 준다. 입력어드레스 발생부(110)가 발생한 어드레스를 원래 상태로 어드레스·제어신호부(112)에 어드레스·제어신호쌍이 기억된다. 기억된 어드레스·제어신호쌍은, 비교·변환정보(201)로서 비교·변환부(102)에 보내지고, 비교·변환이 실시된다. 비교·변환부(102)에서는, 도 3과 같은 구성을 취하고, 순서결정부(115)에서 순서가 결정된다. 순서결정부(115)에서의 순서의 결정은, 도 4의 플로차트로 나타낸다. 이 플로차트에서의 어드레스 1이라고 하는 것은, 어드레스 임시기억부(103)에 대하여 어드레스·제어신호쌍이 저장되어 있는 어드레스이다. 순서결정부(115)에서는 어드레스 1에 대하여 어드레스가 입력되어 있는 가를 어드레스·제어신호부(112)에 입력되어 있는 빈 플래그에 의해 확인하고, 만약, 어드레스 1에 어드레스가 입력되어 있지 않다면, 아무것도 아니므로, 어드레스 1을 무시한다. 그렇지만, 어드레스가 입력되어 있다면, 다음에 우선순위가 최대인지 어떤지를 본다. 이번에는 우선순위는 동일인 것으로 하므로, 순번의 앞당김을 하는 것은 없으므로 다음에 로우어드레스가 동일인지 어떤지를 본다. 이번에는, A와 C의 액세스의 뱅크와 로우어드레스는 동일(0xM0000번지와 0xM0080번지)이고, 최초의 우선순위를 결정할 때에 이미 A의 액세스가 시작하고 있으므로, 다음의 액세스는 B는 아니고, C로 하도록 순번이 앞당겨진다.
다음에 뱅크가 어긋나는지 어떤지를 보지만, 여기에서는, 뱅크가 어긋난 D의 액세스가 있으므로(D는 0xNA000번지), C의 다음은 D의 액세스를 실시한다. 이렇게 하여, ACDB의 순서로 액세스가 실시된다. 단일 뱅크의 구성에 있어서의 복수어드레스 유지기억장치에서는, 복수뱅크를 이용하는 경우에 필요한 플로차트에 있어서, 뱅크의 비교가 되지 않는 것이 다르다. 각부의 접속에 있어서의 구성은 동일하다.
이렇게 하는 것에 의해, 로우어드레스가 주기억부(101)에 투입되기 때문에 전체에서, 11클럭으로 최후에 독출된 B의 데이터가 나오는 것으로 된다. 한편, 통상 실시되는 ABCD의 순서의 액세스와, A와 B의 사이는 동일뱅크이고, 다른 어드레스이므로 도 6에 나타내듯이, 프리차지 기간의 4클럭이 필요하게 되고, 더욱이 C로 액세스할 때에도 프리차지 기간의 4클럭이 필요하기 때문에, D의 데이터가 독출될 때까지로, 최초의 A의 로우어드레스가 투입되므로, 13클럭이 필요하다. 따라서, 본 발명에 있어서는, 종래 예에 비하여 2클럭분의 액세스시간이 단축되는 것으로 된다.
여기에서, 도 5의 타임차트에 대하여 상세하게 설명한다. 임시기억수단(111)에 입력된 어드레스·제어신호쌍은, 다음의 사이클로 제어신호 타이밍생성부(114)로 보내진다. 제어신호 타이밍생성부(114)에 보내어질 때는, 순서결정부(115)에서 어드레스·제어신호쌍의 입력변환을 결정하므로, A에 대해서는 그대로 다음의 사이클로 A의 신호가 나오고 있고, 다음의 사이클에서는 입력변환 후의 신호는 B가 나오고 있다. 그렇지만, 제어신호 타이밍생성부(114)의 쪽에서는 주기억부(101)에 대하여 액세스의 때에 B는 로우어드레스가 다르므로 2사이클이 접수되지 않고, 그 사이에 로우어드레스가 동일한 C의 액세스가 오고, 순서기억 입력변환부(116)에서는 아직 B의 액세스는 접수되어지지 않고 있으므로 C의 액세스를 먼저 실시한다.
다음에, 읽기동작과 쓰기동작이 뒤섞여 있는 경우에 대하여 간단히 설명한다. 쓰기동작 시에는 어드레스버스(207)에 프로세서(105~107)로부터 액세스가 발생한 때에 동시에 데이터버스(218)를 사용하여 임시기억수단(111)의 데이터기록부(113)에 기록데이터를 어드레스·제어신호쌍과 대응하도록 기록되어 진다. 또한, 임시기억수단(111)으로부터 어드레스·제어신호쌍이 제어신호 타이밍생성부(114)에 독출된 때와 동시에 기록데이터도 제어신호 타이밍생성부(114)에 독출된다. 그리고, 제어신호 타이밍생성부(114)에서는, 어드레스·제어신호쌍과 기록데이터를 사용하여 주기억부(101)에 대하여 주기억제어신호와 기록데이터신호를 출력한다.
상기한 구성에 의하여, 본 발명은 순차 또는 동시에 입력된 어드레스를 어드레스 임시기억부에 의해 저장하고, 비교·교환부에 의해 어드레스 임시기억부에 저장된 어드레스의 순서를 전체의 액세스시간이 감소하도록 비교·교환하고, 축적된 어드레스를 주기억부의 동작에 대응하는 속도로 독출하는 것에 의해, 주기억부와 프로세스 또는 프로세서와의 사이에 필요한 액세스사이클을 감소시켜 주기억부에 대한 전체의 액세스시간을 단축하는 것이다. 전체의 액세스시간이 감소하도록, 즉, 액세스가 고속으로 되도록, 어드레스를 비교·교환한다는 것은, 예컨대, 로우어드레스가, 동일한 어드레스가 연속하여 액세스되도록 비교·교환하는 것 또는 특히, 복수뱅크구조의 주기억부의 경우에는 더욱이, 로우어드레스가 동일한 어드레스가 없는 경우에 뱅크가 다른 어드레스가 연속하여 액세스되도록 비교·교환하는 것을 의미한다. 이와 같은 비교·교환에 의해, 어떤 어드레스의 액세스로부터 다음의 어드레스의 액세스의 사이의 프리차지를 회피하거나, 혹은 프리차지를 위한 대기시간을 작게 할 수 있고, 결과적으로 전체의 액세스시간이 짧게되는 것이다. 또, 복수의 프로세스 또는 복수의 프로세서로부터의 액세스에 우선순위를 설정하고, 이것을 상기한 액세스가 고속으로 되는 것과 같은 어드레스의 비교·교환에 우선되도록 된다면, 복수의 프로세스 또는 복수의복수의 프로세서의 우선순위를 적절하게 설정하는 것에 의해, 어드레스의 순서의 입력교환에 의해 액세스순서가 단속(斷續)적으로 앞당겨지고, 특정의 프로세스 또는 프로세서로부터의 주기억부로의 액세스가 정체되어 버리는 것을 방지할 수 있다.

Claims (10)

  1. 복수의 프로세스 또는 복수의 프로세서의 사이에서 데이터의 주고받음을 실시하는 공유의 복수어드레스 유지기억장치에 있어서, 주기억부(101)와, 상기한 복수의 프로세스 또는 상기한 복수의 프로세서로부터 상기한 주기억부(101)를 액세스하기 위한 어드레스와 상기한 주기억부(101)를 제어하기 위한 제어신호를 입력하는 어드레스버스(207)와, 상기한 어드레스버스(207)와는 독립하여 동작하고, 상기한 복수의 프로세스 또는 상기한 복수의 프로세서와 상기한 주기억부(101)의 사이에 데이터를 입출력하는 데이터버스(218)와, 상기한 주기억부(101)의 어드레스 입력단에 설치되어서 상기한 어드레스버스(207)를 통하여 입력된 복수의 어드레스의 유지와 복수의 어드레스에 대응한 복수의 제어신호의 유지가 가능하고, 유지한 어드레스를 차례로 상기한 주기억부(101)에 부여하면서 제어신호를 상기한 주기억부(101)에 부여하는 어드레스 임시기억부(103)와, 상기한 주기억부(101)에 액세스된 순서에 관계하지 않고, 액세스가 고속으로 되는 순서로 입력·변환하고, 상기한 어드레스 임시기억부(103)로부터 상기한 주기억부(101)에 어드레스 및 제어신호를 부여하기 위한 비교·변환부(102)를 구비한 것을 특징으로 하는 복수어드레스 유지기억장치.
  2. 제1항에 있어서, 상기한 비교·변환부(102)에서 액세스의 우선순위에 따른 비교·변환을 실시하고, 또한 액세스가 고속으로 되는 순서에 따른 비교·변환보다, 액세스의 우선순위에 따른 비교·변환을 우선되도록 한 것을 특징으로 하는 복수어드레스 유지기억장치.
  3. 제1항 또는 제2항에 있어서, 액세스가 고속으로 되는 순서가, 동일한 로우어드레스를 가진 어드레스의 액세스가 연속하는 순서인 것을 특징으로 하는 복수어드레스 유지기억장치.
  4. 제1항 또는 제2항에 있어서, 상기한 주기억부(101)가 복수뱅크구조인 것에서, 액세스가 고속으로 되는 순서가, 다른 뱅크의 어드레스에의 액세스가 연속하는 순서인 것을 특징으로 하는 복수어드레스 유지기억장치.
  5. 제1항에 있어서, 상기한 어드레스 임시기억부(103)는, 주기억부(101)를 액세스하기 위한 어드레스 및 제어신호를 임시유지하고 있는 임시기억수단(111)과, 상기한 복수의 프로세스 또는 복수의 프로세서의 우선순위를 결정하여 우선순위 순서로 상기한 주기억부(101)를 액세스하기 위한 어드레스 및 제어신호를 접수하고, 상기한 주기억부(101)를 액세스하기 위한 어드레스 및 제어신호의 접수 시에 결정요구신호를 출력하는 우선순위 결정부(108)와, 상기한 결정요구신호에 응답하여 상기한 주기억부(101)를 액세스하기 위한 어드레스 및 제어신호를 임시기억하고 있기 위한 상기한 임시기억수단의 빈 어드레스를 조사하는 어드레스 조사부(109)와, 상기한 어드레스 조사부(109)의 조사의 결과에 근거하여 상기한 임시기억수단(111)의 빈 어드레스를 상기한 임시기억수단(111)에 데이터기록용의 입력어드레스로서 부여된 입력어드레스 발생부(110)와, 상기한 임시기억수단(111)으로부터의 출력신호를 상기한 주기억부(101)를 액세스하기 위한 적절한 타이밍으로 상기한 주기억부(101)에 부여하는 제어신호 타이밍생성부(114)를 가지고, 상기한 비교·변환부(102)는, 상기한 임시기억수단(111)의 각 어드레스에 기억된 어드레스 및 제어신호의 정보에 근거하여 상기한 임시기억수단(111)의 어드레스의 순번을 결정하고 있는 순서결정부(115)와, 상기한 순서결정부(115)에서 결정된 순서를 기억하고 있는 순서기억 입력변환부(116)와, 상기한 순서기억 입력변환부(116)의 기억내용에 따라 상기한 임시기억수단(111)에 데이터독출용의 출력어드레스를 부여하는 출력어드레스 발생부(117)를 구비한 한 것을 특징으로 하는 복수어드레스 유지기억장치.
  6. 제5항에 있어서, 임시기억수단(111)의 각 어드레스에 기억된 어드레스 및 제어신호의 정보에는, 상기한 임시기억수단(111)의 어드레스가 비어 있는 것을 나타내는 빈 플래그와, 주기억부(101)로 액세스하는 어드레스를 나타내는 어드레스정보가 포함되고, 어드레스 조사부(109)가 상기한 빈 플래그를 기초로 상기한 임시기억수단(111)의 빈 어드레스를 조사하고, 순서결정부(115)가 상기한 어드레스정보를 기초로 상기한 임시기억수단(111)의 어드레스의 순번을 결정하도록 한 것을 특징으로 하는 복수어드레스 유지기억장치.
  7. 제5항에 있어서, 상기한 주기억부(101)가 복수뱅크구조를 가지고, 임시기억수단(111)의 각 어드레스에 기억된 어드레스 및 제어신호의 정보에는, 상기한 임시기억수단(111)의 어드레스가 비어있는 것을 나타내는 빈 플래그와, 주기억부(101)로 액세스하는 어드레스를 나타내는 어드레스정보와, 상기한 주기억부(101)로 액세스하는 뱅크정보가 포함되고, 어드레스 조사부(109)가 상기한 빈 플래그를 기초로 상기한 임시기억수단(111)의 빈 어드레스를 조사하고, 순서결정부(115)가 상기한 어드레스정보와 상기한 뱅크정보를 기초로 상기한 임시기억수단(111)의 어드레스의 순번을 결정하도록 한 것을 특징으로 하는 복수어드레스 유지기억장치.
  8. 제2항에 있어서, 상기한 어드레스 임시기억부(103)는, 주기억부(101)를 액세스하기 위한 어드레스 및 제어신호를 임시보존하고 있는 임시기억수단(111)과, 상기한 복수의 프로세스 또는 복수의 프로세서의 우선순위를 결정하여 우선순위 순서로 상기한 주기억부(101)를 액세스하기 위한 어드레스 및 제어신호의 접수를 하고, 상기한 주기억부(101)를 액세스하기 위한 어드레스 및 제어신호의 접수시에 결정요구신호를 출력하는 우선순위 결정부(108)와, 상기한 결정요구신호에 응답하여 상기한 주기억부(101)를 액세스하기 위한 어드레스 및 제어신호를 임시기억하여 두기 위한 상기한 임시기억수단(111)의 빈 어드레스를 조사하는 어드레스 조사부(109)와, 상기한 어드레스 조사부(109)의 조사결과에 근거하여 상기한 임시기억수단(111)의 빈 어드레스를 상기한 임시기억수단(111)에 데이터기록용의 입력어드레스로서 부여하는 입력어드레스 발생부(110)와, 상기한 임시기억수단(111)으로부터의 출력신호를 상기한 주기억부(101)를 액세스하기 위한 적정한 타이밍으로 상기한 주기억부(101)로 부여하는 제어신호 타이밍생성부(114)를 가지고,
    상기한 비교·변환부(102)는, 상기한 임시기억수단(111)의 각 어드레스에 기억된 어드레스 및 제어신호의 정보에 근거하여 상기한 임시기억수단(111)의 어드레스의 순번을 결정하는 순서결정부(115)와, 상기한 순서결정부(115)에서 결정한 순서를 기억하여 둔 순서기억 입력변환부(116)와, 상기한 순서기억 입력변환부(116)의 기억내용에 따라서 상기한 임시기억수단(111)에 데이터독출용의 출력어드레스를 부여하는 출력어드레스 발생부(117)를 가진한 것을 특징으로 하는 복수어드레스 유지기억장치.
  9. 제8항에 있어서, 상기한 임시기억수단(111)의 각 어드레스에 기억된 어드레스 및 제어신호의 정보에는, 액세스의 우선순위를 나타내는 우선순위정보와, 상기한 임시기억수단(111)의 어드레스가 비어 있는 것을 나타내는 빈 플래그와, 주기억부(101)로 액세스하는 어드레스를 나타내는 어드레스정보가 포함되고, 어드레스 조사부(109)가 상기한 빈 플래그를 기초로 상기한 임시기억수단(111)의 빈 어드레스를 조사하고, 순서결정부(115)가 상기한 우선순위정보와 상기한 어드레스정보를 기초로 상기한 임시기억수단(111)의 어드레스의 순번을 결정하도록 한 것을 특징으로 하는 복수어드레스 유지기억장치.
  10. 제8항에 있어서, 상기한 주기억부(101)가 복수뱅크구조를 가지고, 임시기억수단(111)의 각 어드레스에 기억된 어드레스 및 제어신호의 정보에는, 액세스의 우선순위를 나타내는 우선순위정보와, 상기한 임시기억수단(111)의 어드레스가 비어 있는 것을 나타내는 빈 플래그와, 주기억부(101)로 액세스하는 어드레스를 나타내는 어드레스정보와, 상기한 주기억부(101)에 액세스하는 뱅크를 나타내는 뱅크정보가 포함되고, 어드레스 조사부(109)가 상기한 빈 플래그를 기초로 상기한 임시기억수단(111)의 빈 어드레스를 조사하고, 순서결정부(115)가 상기한 우선순위정보와 상기한 어드레스정보와 상기한 뱅크정보를 기초로 상기한 임시기억수단(111)의 어드레스의 순번을 결정하도록 한 것을 특징으로 하는 복수어드레스 유지기억장치.
KR1019980015881A 1997-05-02 1998-05-02 복수어드레스유지기억장치 KR100573256B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP97-114857 1997-05-02
JP11485797 1997-05-02

Publications (2)

Publication Number Publication Date
KR19980086729A true KR19980086729A (ko) 1998-12-05
KR100573256B1 KR100573256B1 (ko) 2006-10-24

Family

ID=14648446

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980015881A KR100573256B1 (ko) 1997-05-02 1998-05-02 복수어드레스유지기억장치

Country Status (2)

Country Link
US (1) US6145065A (ko)
KR (1) KR100573256B1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP702498A0 (en) * 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART77)
JP2000148999A (ja) * 1998-11-13 2000-05-30 Minolta Co Ltd データ処理システム
US6829689B1 (en) * 2002-02-12 2004-12-07 Nvidia Corporation Method and system for memory access arbitration for minimizing read/write turnaround penalties
US7167946B2 (en) * 2003-09-30 2007-01-23 Intel Corporation Method and apparatus for implicit DRAM precharge
US7127574B2 (en) * 2003-10-22 2006-10-24 Intel Corporatioon Method and apparatus for out of order memory scheduling
US7587521B2 (en) 2005-06-23 2009-09-08 Intel Corporation Mechanism for assembling memory access requests while speculatively returning data
US8332598B2 (en) * 2005-06-23 2012-12-11 Intel Corporation Memory micro-tiling request reordering
US7765366B2 (en) * 2005-06-23 2010-07-27 Intel Corporation Memory micro-tiling
US7558941B2 (en) * 2005-06-30 2009-07-07 Intel Corporation Automatic detection of micro-tile enabled memory
US8253751B2 (en) * 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
JP2007088522A (ja) * 2005-09-16 2007-04-05 Ricoh Co Ltd 画像処理装置
US7426621B2 (en) * 2005-12-09 2008-09-16 Advanced Micro Devices, Inc. Memory access request arbitration
WO2007088426A1 (en) * 2006-01-31 2007-08-09 Freescale Semiconductor, Inc. Device and method for accessing dynamic memory units
JP5699854B2 (ja) * 2011-08-15 2015-04-15 富士通株式会社 記憶制御システムおよび方法、置換方式および方法
US9195621B2 (en) * 2013-03-15 2015-11-24 Freescale Semiconductor, Inc. System and method for assigning memory access transfers between communication channels
US9396109B2 (en) 2013-12-27 2016-07-19 Qualcomm Incorporated Method and apparatus for DRAM spatial coalescing within a single channel
US10277561B2 (en) * 2016-07-22 2019-04-30 International Business Machines Corporation Database management system shared ledger support
US10176109B2 (en) 2017-04-20 2019-01-08 Oracle International Corporation Permuted memory access mapping

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58225432A (ja) * 1982-06-24 1983-12-27 Toshiba Corp 要求バツフア装置
JPH0616272B2 (ja) * 1984-06-27 1994-03-02 株式会社日立製作所 メモリアクセス制御方式
JP3144794B2 (ja) * 1990-11-09 2001-03-12 株式会社日立製作所 マルチプロセッサシステム
KR0124630B1 (ko) * 1994-02-28 1997-12-10 문정환 랜덤블럭 억세스메모리의 메모리 칩 확장제어방법 및 장치
TW388982B (en) * 1995-03-31 2000-05-01 Samsung Electronics Co Ltd Memory controller which executes read and write commands out of order
US5666494A (en) * 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US6058461A (en) * 1997-12-02 2000-05-02 Advanced Micro Devices, Inc. Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation

Also Published As

Publication number Publication date
US6145065A (en) 2000-11-07
KR100573256B1 (ko) 2006-10-24

Similar Documents

Publication Publication Date Title
KR100573256B1 (ko) 복수어드레스유지기억장치
EP1345125B1 (en) Dynamic random access memory system with bank conflict avoidance feature
US5706482A (en) Memory access controller
US7149857B2 (en) Out of order DRAM sequencer
US6671761B2 (en) Bus system
JP3304577B2 (ja) 半導体記憶装置とその動作方法
JP2000501536A (ja) 種々のメモリセグメント間のメモリコントロールシーケンスのタイミングを最適にするメモリコントローラユニット
US5022004A (en) Method and apparatus for DRAM memory performance enhancement
US5822768A (en) Dual ported memory for a unified memory architecture
US20050289319A1 (en) Memory control apparatus and method for scheduling commands
US6272583B1 (en) Microprocessor having built-in DRAM and internal data transfer paths wider and faster than independent external transfer paths
KR100288177B1 (ko) 메모리 액세스 제어 회로
JP4153579B2 (ja) メモリアクセス制御装置
US7346713B2 (en) Methods and apparatus for servicing commands through a memory controller port
JP2912609B2 (ja) 複数アドレス保持記憶装置
US20040034748A1 (en) Memory device containing arbiter performing arbitration for bus access right
US20070083693A1 (en) Electronic data processing circuit that transmits packed words via a bus
US6493775B2 (en) Control for timed access of devices to a system bus
US20050060475A1 (en) Data transfer apparatus and data transfer method
KR100716947B1 (ko) 커맨드 실행 조정방법 및 그 장치
JPH1139216A (ja) 半導体記憶装置及びキャッシュメモリシステム
JP3063945B2 (ja) 時分割スイッチ制御方式
JP2000172552A (ja) メモリアクセス装置及びそのアクセス方法
JP2684752B2 (ja) 拡張記憶制御方式
JPH09185883A (ja) メモリアクセス制御装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110318

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee