TWI803596B - 電子設備、記憶體管理方法及非暫時性機器可讀媒體 - Google Patents
電子設備、記憶體管理方法及非暫時性機器可讀媒體 Download PDFInfo
- Publication number
- TWI803596B TWI803596B TW108109179A TW108109179A TWI803596B TW I803596 B TWI803596 B TW I803596B TW 108109179 A TW108109179 A TW 108109179A TW 108109179 A TW108109179 A TW 108109179A TW I803596 B TWI803596 B TW I803596B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- core
- memory blocks
- blocks
- data
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 354
- 238000000034 method Methods 0.000 title claims description 12
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000012360 testing method Methods 0.000 claims description 54
- 238000007726 management method Methods 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims 1
- 238000012797 qualification Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/441—Register allocation; Assignment of physical memory space to logical memory space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Mram Or Spin Memory Techniques (AREA)
Abstract
一種設備包括:處理核心、記憶體區塊、在處理核心的各者與記憶體區塊之間的連接、晶片選擇電路、以及在該晶片選擇電路與該等記憶體區塊的各者之間的晶片選擇電路匯流排。各記憶體區塊包括一資料埠以及一記憶體檢查埠。該晶片選擇電路經組態以通過該等記憶體區塊的各別的資料埠而實現來自一最高優先性核心的資料寫入。該晶片選擇電路進一步經組態以通過該等記憶體區塊的各別的記憶體檢查埠而實現來自其他核心的資料寫入。
Description
本揭露係關於電子裝置中的記憶體管理,且更具體地係關於用於多核心系統的記憶體池分配。
電子裝置可包括多個處理器或具有多個執行核心的處理器。唯讀記憶體(read-only memory,ROM)及隨機存取記憶體(random access memory,RAM)實體地實施在電子裝置中且通訊地耦接至電子裝置。
電子裝置上運行的應用程式與程序可共享對於相同實體記憶體的存取。共享的記憶體可指可由多處理器電腦系統中的數個不同的中央處理單元(central processing unit,CPU)或核心所存取的RAM區塊。應用程式可在這些多核心上運行。系統可使用統一的記憶體存取以實施共享記憶體。在這種情況下,所有核心統一共享實體記憶體。該系統可改用非統一的記憶體存取。在這種情況下,記憶體存取時間取決於相對於處理器的記憶體位置。在又其他情況下,系統可使用快取記憶體架構。這可能是最常見的實施方案,其中可使用用於各核心的本機記憶體或快取,且當需要時,從主記憶體抓取額外的內容。由於所有處理器共享資料的單一瀏覽,所以共享記憶體系統可能相對容易程式化。
本揭露的實施例可包括一設備。該設備可包括:處理核心,該等處理核心包括一第一核心及一第二核心;及一記憶體池,該記憶體池包括記憶體區塊。各記憶體區塊可包括一資料埠及一記憶體檢查埠;第一連接,該等第一連接在該第一核心與該複數個記憶體區塊的各者之間;第二連接,該等第二連接在該第二核心與該複數個記憶體區塊的各者之間;以及一晶片選擇電路,該晶片選擇電路經組態以在該第一核心與該第二核心之間共享對於該記憶體池的存取。與上述實施例的任何者組合,該晶片選擇電路可藉由下述而共享對於該記憶體池的存取:通過該等記憶體區塊的各別的資料埠實現從該第一核心至該等記憶體區塊的資料之存取;且通過該等記憶體區塊的各別的記憶體檢查埠實現從該第二核心至該等記憶體區塊的資料之存取。與上述實施例的任何者組合,該晶片選擇電路可進一步經組態以藉由通過該等記憶體區塊的該等各別的記憶體檢查埠實現從一第三核心至該等記憶體區塊的資料之存取,而在該複數個處理核心中的該第一核心、該第二核心、與該第三核心之間共享對於該記憶體池的存取。與上述實施例的任何者組合,該晶片選擇電路可進一步經組態以通過該等記憶體區塊的該等各別的記憶體檢查埠實現從記憶體測試電路至該等記憶體區塊的信號之存取。與上述實施例的任何者組合,該晶片選擇電路可進一步經組態以基於該第一核心係比該第二核心較高優先性的一核心之一判定,而通過各別的資料埠實現來自該第一核心的資料之存取並且通過各別的記憶體檢查埠實現來自該第二核心的資料之存取。與上述實施例的任何者組合,該晶片選擇電路可進一步經組態以同時:通過一給定記憶體的一各別的資料埠
實現從該第一核心至該給定記憶體區塊的資料之存取;且通過該給定記憶體的一各別的記憶體檢查埠實現從該第二核心至該給定記憶體區塊的資料之存取。與上述實施例的任何者組合,該等記憶體區塊具有不同的大小。與上述實施例的任何者組合,記憶體區塊至各別的核心的一指派可在該第一核心及該第二核心執行軟體的編譯期間判定。與上述實施例的任何者組合,該晶片選擇電路可進一步經組態以:從一編譯程序判定記憶體區塊至核心的一指派;且基於一給定記憶體區塊未指派至一核心之一判定,關閉該給定記憶體區塊。
本揭露的實施例可包括微處理器、微控制器、系統、或包括上述實施例的設備的電子裝置。
本揭露的實施例可包括一種非暫時性機器可讀媒體,其包括指令。當該等指令由一處理器載入且執行時,該等指令可將該處理器組態以:將來源指令編譯成由一第一核心及一第二核心執行的物件碼以在一目標機器上操作;識別該第一核心及該第二核心的程式記憶體需求;識別該目標機器上可用的複數個記憶體區塊之各者的一大小及數量;且基於該等程式記憶體需求以及該等記憶體區塊的該大小及數量,指派該等記憶體區塊的個別者至該第一核心或該第二核心。該等指令可形成由上述的實施例的設備執行的一應用程式。
本揭露的實施例可包括由以上實施例的設備、微處理器、微控制器、系統、或電子裝置之任何者執行的方法。
本揭露的實施例可包括當上述實施例的該等指令在一處理器上執行時由該等指令執行的方法。
100:系統;晶片選擇電路
102:記憶體池
104:核心
105:核心
106:核心
107:核心
108:核心
110:核心/記憶體區塊
112:記憶體區塊
114:記憶體區塊
116:晶片選擇電路
200:系統
204:核心
206:核心
208:核心
210:快取
212:快取
214:快取
216:匯流排結構
218:分配
220:分配
222:分配
318:方塊
320:分配程式
322:碼/編譯影像/碼影像
324:碼/編譯影像/碼影像
326:碼/編譯影像/碼影像
328:編譯碼
330:非揮發性儲存器/非揮發性記憶體
440:記憶體區塊
702:RAM板
704:晶片選擇邏輯
706:位元RAMALLOCXX[0]
710:位元RAMALLOCXX[1]/SQI晶片選擇
712:BIST模式選擇
714:BIST
716:側載入或側讀取
718:多工器/XOR
720:多工器/OR
722:多工器
724:測試啟用(TEN)接腳/TEN
726:測試埠
728:主埠
圖1係根據本揭露的實施例之用於將記憶體池的部分分配至多個處理器或處理核心之系統的圖示。
圖2繪示使用其他解決方案的例示性系統。
圖3係根據本揭露的實施例之用於將記憶體池的部分分配至多個處理器或處理核心之系統的更詳細視圖。
圖4係根據本揭露的實施例之用於將記憶體池的部分分配至多個處理器或處理核心之系統的又另一更詳細視圖。
圖5係根據本揭露的實施例之更詳細視圖,其繪示用於將記憶體池的部分分配至多個處理器或處理核心之系統中的晶片選擇路徑。
圖6根據本揭露的實施例繪示例示性分配指定機構。
圖7係根據本揭露的實施例之晶片選擇邏輯與RAM板的圖示。
圖1係根據本揭露的實施例之用於將記憶體池102的部分分配至多個處理器或處理核心104、106、108之系統100的圖示。
系統100可包括多於一個處理器或給定處理器中的多於一個處理核心。可使用核心或處理器的任何合適的數量或組合。在圖1中,顯示三個核心104、106、108作為實例。核心104、106、108可來自單個處理器或多個處理器,諸如傳統的中央處理單元(CPU)或數位信號處理器(digital signal processor,DSP)。其他處理器可包括在微控制器、特定應用積體裝置、現場可程式化閘陣
列(field-programmable gate array,FPGA)、或其他合適的處理積體電路上的那些處理器。核心104、106、108可共享對於記憶體池102的存取。
記憶體池102可分成多個記憶體區塊110、112、114。記憶體池102可包括ROM或RAM。在一實施例中,記憶體池102可以是程式記憶體。程式記憶體可包括用於載入並執行電子裝置中的可執行文件或其他編譯的或可執行的物件之記憶體。程式記憶體可與資料記憶體分開。資料記憶體可在分開的記憶體管理方案中處理。雖然程式記憶體可用於保存用於正在執行的程式的指令,但資料記憶體可用於暫時儲存並保持來自此類執行的程式的中間結果與變數。程式記憶體可包括啟動部分與應用程式部分。
記憶體池102可由實體區塊實施。例如,記憶體區塊110、112、114中的各者可以是分開的實體記憶體區塊。實體記憶體區塊可稱為記憶體板。各記憶體區塊110、112、114可包括用於與系統100的其餘部分相互作用的裝置、介面、控制器、電路、或其他機構。在各種實施例中,記憶體區塊110、112、114可各自具有相同或不同的大小。記憶體區塊110、112、114中的各者可指派至核心104、106、108中的單一者。雖然在圖1中示出了給定數量的記憶體區塊110、112、114,但系統100可包括任何合適數量的各種大小的記憶體區塊。在許多情況下,可能會有比核心多多個的記憶體區塊。
在一實施例中,系統100可包括經組態以將命令信號路由至記憶體區塊110、112、114的晶片選擇電路116。在另一實施例中,晶片選擇電路116與系統100的其他部件可經組態以使用記憶體區塊110、112、114的現有的測試輸入或包裝物,以將命令與資料路由至此類記憶體區塊且從此類記憶體區塊路由命令與資料。晶片選擇電路116可由例如數位邏輯實施。晶片選擇電路
116可取代匯流排結構的使用,該匯流排結構在大小與晶粒成本上可大數個數量級。例如,晶片選擇電路116的此類邏輯可能僅需要幾百個邏輯閘來實施,而不是實施匯流排結構所需的數十萬個閘。
記憶體區塊110、112、114中的哪一者與核心104、106、108中的一者匹配的定義或規格可儲存在合適的位置中。例如,此類定義或規格可儲存在非揮發性記憶體中。該等定義或規格可實施在例如電子熔絲或其他儲存器中。該等定義或規格可於編譯將在系統100上執行的應用程式或其他軟體的時候定義。儲存定義或規格的非揮發性記憶體可由晶片選擇電路116存取。晶片選擇電路116可包括邏輯,用以基於儲存在非揮發性記憶體中的編譯時間資訊(諸如定義或規格)來將核心位址轉譯為記憶體區塊選擇信號。
針對在核心104、106、108上執行的軟體,晶片選擇電路116可將對位址的請求轉譯為或路由至記憶體區塊110、112、114中的實體一者。如上所討論者,晶片選擇電路116可基於非揮發性記憶體中的定義或規格來做出此類轉譯或路由。核心指令匯流排位址至記憶體區塊110、112、114的實體記憶體的映射可在例如裝置重設時執行。
圖2繪示例示性系統200,其中針對共享記憶體使用其他解決方案。在系統200中,很難事先知道各核心將需要多少程式記憶體。核心204、206、208可共享對於記憶體分配218、220、222的存取。可通過匯流排結構216來路由存取。核心204、206、208可能需要快取210、212、214。系統100可能不包括此類快取。給定核心可能需要快取與匯流排結構216被路由至記憶體池的各種分配218、220、222。分配218、220、222可具有相同的大小。匯流排結構216可根據需要將各核心路由至各分配。然而,此方法引入了性能損失、匯
流排結構216的複雜性,並且需要性能增強技術,諸如快取。匯流排結構216在大小與複雜性上可比晶片選擇電路116更大幾個數量級。此外,匯流排結構216可動態地改變核心204、206、208與分配218、220、222之間的路徑的路由。
返回圖1,用於系統的程式、可執行文件、或應用程式的開發人員可編譯在系統100上執行的程式。針對程式記憶體,可在編譯時靜態地判定各核心104、106、108所需的程式記憶體的量。程式員可指定核心104、106、108中的哪一者來處理特定任務。給定核心所需的程式記憶體的量因此可在編譯時判定。資料記憶體可取決於外部變數,且因此不固定,且因此在運行時不是已知的。因此,系統100可藉由將核心映射至記憶體區塊而管理程式記憶體,而資料記憶體可分開地處理。
記憶體池102可以是程式記憶體的通用池。記憶體池102可包含個別的實體記憶體區塊110、112、114。在編譯時,不同數量的記憶體區塊110、112、114可指派至核心105、106、108中的各者。記憶體區塊110、112、114中的個別者可一起分配在連續的或不連續的區塊中。記憶體區塊110、112、114中的未使用者可如此指定。記憶體區塊110、112、114中的未使用者可被斷電、轉入休眠模式、或以其他方式關閉。
記憶體區塊110、112、114中的各者的大小可彼此不同。然而,記憶體區塊110、112、114中的各者的特定大小及數量可在系統100的特定實例中是固定的。系統100的不同實例可包括記憶體區塊110、112、114的不同組合(在各記憶體區塊的特定大小及數量方面)。然而,為了編譯系統100的軟體,可能需要知道記憶體區塊110、112、114的特定記憶體組態。編譯程序可
考慮記憶體區塊110、112、114的組合的不同選項,以在核心104、106、108與記憶體區塊110、112、114之間進行更精細的記憶體指派。
圖3係根據本揭露的實施例之用於將記憶體池102的部分分配至多個處理器或處理核心104、106、108之系統100的更詳細視圖。圖3可繪示用以產生並編譯將要載入至目標機器中的程式或應用程式之例示性操作。
編譯可顯示在方塊318中。在一實施例中,編譯可在與系統100的其餘部分相同的機器上執行。在另一實施例中,編譯可在與系統100的其餘部分不同的機器上執行。編譯可在開發機器上執行。編譯可在任何合適的時間執行,包括遠在程式在核心104、106、108上執行之前。編譯可產生編譯碼328。編譯碼328可通過任何合適的機構提供至系統100,諸如通過網路或媒體。編譯碼328可儲存在長期記憶體中,直到其被載入至記憶體區塊110、112、114中的程式記憶體中執行。
方塊318可包括分配程式320,該分配程式經組態以判定哪個核心104、106、108將使用記憶體池102中的哪個記憶體區塊。分配程式320可被包括在用於將碼編譯成物件碼的其他應用程式或程式中,亦或可與此類應用程式或程式分開。分配程式320可由電腦可讀媒體上的指令實施,當該等指令由處理器載入並執行時,導致分配程式320執行如本揭露中所描述的其功能。分配程式320可進一步藉由程式庫、指令碼、可執行文件、應用程式、或其他軟體的任何合適組合來實施。分配程式320可經組態以判定針對核心104、106、108的各者的程式記憶體需求。程式記憶體需求可基於將由核心104、106、108的各別者所執行的碼322、324、326。碼322、324、326可包括用於各別的核心104、106、108的編譯碼影像。分配程式320可經組態以將來自記憶體池102的
元件與核心104、106、108匹配。可在編譯時判定分配。該分配可基於如程式員所設計、將在不同核心104、106、108上執行的特定任務。程式記憶體需求可針對各核心104、106、108來判定。用於核心104、106、108的編譯影像322、324、326中所表達的需求可由分配程式320來使用,以找出最佳的記憶體分配。如果不同影像不能放置至實體記憶體中,錯誤可能發生。
一旦整個應用程式載入至目標機器上,碼影像322、324、326可載入至記憶體池102的不同部分中。分配資訊-亦即,記憶體池102的哪個實體記憶體區塊映射至哪個核心104、106、108-可儲存在系統100的非揮發性儲存器330中。
在一實施例中,計算分配可藉由記憶體將記憶體池映射至各核心的記憶體映射中的相同位址中來執行。在這種情況下,指派至給定核心104、106、108的記憶體可能是連續的。這可能是一種相對容易實施的解決方案,因為其可能不需要位址轉譯。但是,此解決方案可能有問題,因為各核心可能具有相同的啟動位址。例如,核心104可能需要在基底位址0x0_0000處的64k的程式記憶體,核心106可能需要在基底位址0x1_0000處的30k的程式記憶體,且核心108可能需要在基底位址0x2_0000處的128k的程式記憶體。總需求可係222k的程式記憶體。利用這些大小與位址,沒有核心會具有重疊的位址範圍。當有八個32k區塊的池時,可將前兩個區塊指派至核心104,可將第三區塊指派至核心106,第四區塊可被分配為「關閉」,且可將其餘的四個區塊分配至核心108。在這種方案下,該等八個32K區塊可被視為所有三個核心共享的單個記憶體映射中的單個256K記憶體池,此係因為其等在其個別記憶體映射中沒有重疊。因此,選擇記憶體區塊純粹是分配位元的功能(如下面的圖6所
示),而非各核心所產生的位址的功能。可實行此方案的實施方案,其中各記憶體區塊的晶片選擇的產生可僅使用分配位元與來自各核心的位址來決定,其中位址不需轉譯。此解決方案提供了最快的邏輯路徑,且因此最高可能的記憶體存取頻率。
在另一實施例中,計算分配可由完全彈性的分配來執行。在完全彈性的分配下,指派至給定核心104、106、108的記憶體可能不是連續的。這可能需要針對記憶體晶片選擇斷定的位址解碼或轉譯。這可能增加至存取記憶體池102的給定部分所需的晶片選擇電路116中的時序路徑。例如,核心104可能需要在基底位址0x0_0000處的64k的程式記憶體,核心106可能需要在基底位址0x1_0000處的30k的程式記憶體,且核心108可能需要在基底位址0x2_0000處的128k的程式記憶體。總需求可係222k的程式記憶體。當記憶體池包括兩個64k的區塊與四個32k的區塊時,可將第一個64k的區塊指派至核心104,且可不需要位址解碼或轉譯。可將第一個32k的區塊指派至核心106。可將第二個64k的區塊以及第二個與第三個32k的區塊指派至核心108。第四個32k的區塊可未使用。利用此方案,設計者可具有完全的彈性。然而,該實施方案可能稍微較複雜,因為晶片選擇產生現在必須從各核心所產生的位址連同分配位元(如圖6中所示)減去各核心的基底位址,以判定晶片選擇斷定。這使得邏輯路徑略長於連續的記憶體映射方案,但提供了適應記憶體映射的所有排列之彈性。在又另一實施例中,計算分配可由這些方法的組合來執行。記憶體可直接映射至時間最關鍵的核心的記憶體映射中。因此,對於此核心處的記憶體,定址可開始於0x00。其他核心可能必須映射至該相同的記憶體映射中。在此類實施例
中,位址與資料匯流排僅可被監聽(sniffed),而不是被修改。因此,位址與資料匯流排上不會有時序損失。
在編譯時,可將區塊的任何合適的組合指派至給定的核心。例如,記憶體區塊可包括2至8k的記憶體區塊、2至16k的記憶體區塊、及2至64k的記憶體區塊。如果核心1需要22k的程式記憶體,(在編譯時)可將一個8k的記憶體區塊及一個16k的記憶體區塊指派至核心1。在這種情況下,可能浪費2k的記憶體。替代地,可將兩個16k的區塊或單個64k的區塊指派至核心1。這些將招致甚至更多的浪費空間。但是,分配可考慮其他核心的需求。在這種情況下,核心2與核心3可能各自僅需要8k的程式記憶體。因此,將兩個16k的區塊指派至核心1可能是最佳的,因為未使用的區塊係被關閉。
可針對記憶體池102的特定實施方案來編譯碼。因此,具有不同數量的記憶體區塊或不同大小的記憶體區塊之記憶體池102的實例將需要不同的編譯影像。分配程式320可在編譯時鎖定特定的記憶體組態。
圖4係根據本揭露的實施例之用於將記憶體池102的部分分配至多個處理器或處理核心104、106、108之系統100的又另一更詳細視圖。圖4可說明一旦程式已被編譯、被載入至目標機器中、且正在執行時系統的操作。此外,圖4可說明晶片選擇電路116、核心104、106、108、與記憶體區塊440之間的位址與資料路徑。下圖5可繪示晶片選擇路徑。
如圖4所示,位址與資料匯流排可從核心104、106、108中的各者路由至記憶體池102的各記憶體區塊440。為了說明的目的,圖4中示出了比圖1所示更多例示性記憶體區塊440。各記憶體區塊440可路由至各核心104、106、108。因此,給定的記憶體區塊440可由所有的核心104、106、108試圖存
取。可通過晶片選擇電路116來控制對給定記憶體區塊440的實際存取的閘控或允許。
記憶體區塊的大小根據記憶體池102的製造可係固定的。然而,記憶體池102的不同實例可包括記憶體區塊440的數量與大小的變化。例如,任何單個記憶體區塊440可實施8k與64k之間的記憶體。在晶片上系統(system-on-chip,SoC)的實施方案或其他解決方案中,記憶體可根據記憶體區塊440的大小進行定制。在這種情況下,記憶體區塊440中的不同者的大小可彼此不同。相比之下,如果使用可商購獲得的架上記憶體,則記憶體區塊440的大小可能是統一的。
各記憶體區塊440可包括主存取埠。各記憶體區塊440也可包括記憶體測試埠。在一實施例中,各記憶體區塊440可由應用程式指派至或專用於核心104、106、108中的單一者。該指派可在編譯時進行,如上述。然而,以系統100中的實體結構而言,各核心104、106、108可能需要至各記憶體區塊440的路由,如圖4所示,以適應可能載入的各種軟體所做的可能的組態與指派。在一實施例中,核心104、106、108中的最快或最高優先性者可使用各別的記憶體區塊440的主存取埠直接連接至記憶體區塊440中的各者。在另一實施例中,核心104、106、108中的其他者可使用記憶體測試埠連接至各記憶體區塊440。
圖5係根據本揭露的實施例之更詳細視圖,其繪示用於將記憶體池102的部分分配至多個處理器或處理核心104、106、108之系統100中的晶片選擇路徑。
晶片選擇電路100可連接至各個各別的記憶體區塊440。這些連接可彼此分開。晶片選擇電路100可經組態以針對特定的存取判定是否向各別的記憶體區塊440發出晶片選擇信號。藉由查看核心104、106、108中的哪一者將被執行或載入,可產生用於給定記憶體區塊440的晶片選擇信號。與核心104、106、108中的此類一者相關的記憶體區塊440中的一者可藉由晶片選擇電路100發出晶片選擇信號。在該特定時刻,記憶體區塊440的其他者可能未接收此類信號。
晶片選擇電路100可存取用於核心104、106、108與記憶體區塊440之間的映射之非揮發性記憶體,以判定晶片選擇信號將發送至哪個記憶體區塊。在一實施例中,可監聽核心104、106、108中的各者的匯流排,以判定哪個記憶體區塊在給定時刻將接收晶片選擇信號。
圖6根據本揭露的實施例繪示例示性分配指定機構。圖6的內容可說明非揮發性記憶體330中的內容的組織與標誌。例如,圖6可說明32位元字。內容可藉由例如快閃記憶體熔絲、OTP、電子熔絲、或其他合適的機構來實現。非揮發性記憶體可包括可程式化儲存器,以將給定記憶體區塊440指派給給定核心104、106、108。
在圖6的例示性32位元字中,可指定十六個記憶體區塊。如果系統100包括多於十六個記憶體區塊440,則將需要與圖6所示不同的實施方案,諸如可保持多於32位元的一者。
各記憶體區塊440可指派至給定核心104、106、108。在圖6的實例中,可使用三個核心。因此,兩個位元可用於指定給定的記憶體區塊(440)的經指派的核心104、106、108。如果系統100包括多於四個核心,則可能需要具有更大容量的表示。該32位元字可在編譯時判定。各記憶體區塊440可以是
RAM板,並且可以是記憶體的實體區塊。核心104、106、108可包括例如DSP核心、應用程式CPU核心、及另一CPU核心。DSP核心的實例可以是這些例示性核心中的最高優先性處理器核心。
十六個可定址記憶體區塊顯示在圖6中。然而,記憶體區塊440可具有不同的大小。所示的各記憶體區塊具有可路由至其他電路系統的例示性命令或指令值(RAMALLOCXX,其中XX表示該記憶體區塊標示1...16)。如上文所討論,該值可用兩個位元表示。「11」的位元表示可意指各別的記憶體區塊440指派至DSP核心。「10」的位元表示可意指各別的記憶體區塊440指派至應用程式核心。「01」的位元表示可意指各別的記憶體區塊440指派至藍牙(BLUETOOH,BT)核心。「00」的位元表示可意指各別的記憶體區塊440未指派至任何DSP核心,且可關閉。
來自RAMALLOCXX的個別者的值可路由至晶片選擇電路116。晶片選擇電路116可基於RAMALLOCXX的值向記憶體區塊440發出控制信號。
圖7係根據本揭露的實施例之晶片選擇邏輯704與RAM板702的圖示。RAM板702可實施上述圖式中所述的任何記憶體區塊。晶片選擇邏輯704可實施在晶片選擇電路116中或系統100的另一合適部分中。圖7的元件可經複製,用於系統100中的各實體記憶體區塊。
RAM板702可包括主埠或功能埠728。主埠728可包括用於晶片選擇/啟用(chip-select/enable,CEN)、位址(A)-A[n:0 bits]、及資料-Q[m:0 bits]的接腳或輸入/輸出。CEN的「N」可指示該信號是低態有效,但在各種實施例中,可替代地使用高態有效的實施方案。CEN可係至RAM板702的輸入,向
RAM板702指示其正在被定址且應該執行讀取或寫入。位址欄可以是輸入至RAM板702的位址的位元。當RAM板702被定址時,其可能是讀取或寫入位址。資料欄可以是待寫入或待讀取的資料的位元。針對讀取操作,A[n:0]可驅動至特定位址,CEN可被斷定(如果CEN是低態有效,則設定至低),且Q[m:0]可被取樣以獲得讀取資料。雖然顯示為單個埠,但主埠728可以用任何合適數量的接腳或埠來實施。例如,CEN、A、及Q中的各者可由各別的接腳來實施。待寫入至或讀取自RAM板702的資料可通過主埠728來處理。在其他解決方案中,諸如圖2所示,匯流排矩陣可將核心中的合適一者路由至此主埠728,諸如核心106、108、110。
RAM板702可包括測試埠726。測試埠726可包括用於測試CEN(test CEN,TCEN)、測試位址-TA[n:0 bits]、及測試資料-TQ[m:0 bits]的接腳或輸入/輸出。雖然顯示為單個埠,但測試埠726可以用任何合適數量的接腳或埠來實施。例如,TCEN、TA、及TQ中的各者可由各別的接腳來實施。自我測試,諸如內建自我測試(built-in-self-test,BIST)或記憶體的側載入或側讀取(SQI),可通過測試埠726執行。BIST可包括用於RAM板702測試自身的指令。記憶體的側載入或側讀取可包括利用例如除錯器對記憶體寫入或從記憶體讀取。在其他解決方案中,諸如圖2所示,系統的內部測試電路系統可將BIST 714或側載入或側讀取716信號路由至此測試埠726。
如果RAM板702未製造有主埠728或測試埠726與相關的介面在其上,設計者可包括圍繞核心記憶體區塊的包裝物以複製這些特徵。該包裝物可用數位與類比電路系統的合適組合來實施。
RAM板702將使用測試埠726或主埠728中的哪個埠之模式,可由測試啟用(test enable,TEN)接腳724加以設定。測試埠726與主埠728的組合可製成用於RAM板702的包裝物。在功能上,當TEN 724未被斷定時,主埠728(包括CEN/A[n:0]/Q[m:0])可係有效的(亦即,RAM板702實際上檢查或使用的輸入埠/接腳)。此外,當TEN 724係相反值且被斷定時,測試埠726(TCEN/TA[n:0]/TQ[m:0])可係有效的。
在一實施例中,系統100可重複使用測試埠726以傳遞用於一或多個核心的信號。在一進一步實施例中,系統100可通過主埠728傳遞用於單個核心的信號。在另一進一步的實施例中,可通過主埠728傳遞用於最快或最高優先性核心的信號。在又另一進一步的實施例中,可通過測試埠726共享用於其他核心的信號。其他核心可能較慢或較低優先性。優先性的指定可在編譯期間實行。其他核心可用測試埠726的測試邏輯傳遞通過或以其他方式與測試埠726的測試邏輯共享路徑。優先性核心可直接連接至主埠728。
例如,核心106可表示更快與更高優先性的DSP CPU。核心106可直接連接至主埠728。此外,核心106可直接連接至系統100中的RAM板的所有實例的主埠。由核心106發送的信號可能足以定址且讀取與寫入資料。其他核心,諸如核心108(代表應用程式CPU)與核心110(代表BT CPU)可共享對於測試埠726的存取。此外,核心108與核心110可利用RAM板702的測試邏輯進一步共享對於測試埠726的存取。此類測試邏輯可包括BIST 714或側載入/側讀取716信號。核心108與核心110可連接至系統100中的RAM板的所有實例的測試埠(儘管是通過選擇邏輯)。
RAM板702可經組態以基於測試模式啟用輸入724來使用測試埠726或主埠728。例如,當輸入724係高時,可通過測試埠726來執行資料的讀取與寫入,或者當輸入724係低時,可通過主埠728來執行資料的讀取與寫入。這些選擇的邏輯位準可在適當時反轉。當選擇測試埠726或主埠728中的一者時,可忽略其他輸入。
可使用任何合適的機構、電路系統、或邏輯來判定是否使用測試埠726或主埠728。如果SQI晶片選擇710或BIST模式選擇712由系統100的其他測試部分(未圖示)啟用,則可選擇測試埠726。此外,如果RAM板702(表示為系統100中的可用RAM板的編號XX)被指派至核心108或核心110,則可選擇測試埠726。否則,RAM板702可指派至核心107。在這種情況下,可選擇主埠728。邏輯704可包括判定RAM板702(作為RAM板XX)是否如諸如非揮發性記憶體的機構中或圖6中所指定般指派至核心108或核心110。例如,對於圖6的32位元字中的給定位元對RAMALLOCXX,「11」表示RAM板XX係分配至DSP(核心106);「10」表示RAM板XX係分配至應用程式CPU(核心108);「01」表示RAM板XX係分配至BT CPU(核心110);且「00」表示RAM板XX未分配至任何CPU。使用此例示性實施方案,邏輯704可因此包括來自RAMALLOCXX的輸入上的XOR 718操作。具體而言,比較兩位元RAMALLOCXX[0]706與RAMALLOCXX[1]710。這些可從圖6的熔絲進行路由。如果設定了這些位元中的一者但不是兩者,則可判定RAM板XX 702係分配至核心108或核心110中的一者,並且因此將使用測試埠726。此外,在系統100已命令記憶體測試的任何情況下,諸如當啟用SQI晶片選擇710或BIST模式
選擇712時,將使用測試埠726。因此,XOR 718的輸出、SQI晶片選擇710、及BIST模式選擇712可在OR 720操作中進行比較,並傳遞至測試啟用埠724。
任何合適的機構、電路系統、或邏輯可用於核心108、核心110、與測試邏輯,以共享對於測試埠726的存取。例如,核心108、核心110、BIST 714、及側載入/側讀取716可通過多工器718、720、722的合適組合多工在一起,以共享對於測試埠726的存取。用於多工器718、720、722的選擇信號可由邏輯704或晶片選擇電路116控制。用於多工器718的選擇信號可包括SQI晶片選擇710或BIST模式選擇712。BIST 714或側載入/側讀取716中的適當一者可從多工器718路由至多工器720。如果兩者都不使用,則從多工器718至多工器720的輸入可能無關緊要。用於多工器718的選擇信號可包括與BIST模式選擇712經OR邏輯運算的SQI晶片選擇710。如果這兩者均未啟用,多工器720可將來自核心108的信號傳遞至多工器722。否則,多工器720可將來自多工器718的輸入傳遞至多工器722。用於多工器720的選擇信號可相反地基於設定為{1,0}的RAMALLOCXX或其等同物。用於多工器722的選擇信號可包括例如設定為{0,1}的RAMALLOCXX或其等同物。若是,則多工器722可將核心110信號傳遞至測試埠726。否則,多工器722可將從多工器720接收的輸入傳遞至測試埠726。因此,測試埠726可在較低優先性核心108、110之間以及在此類較低優先性核心108、110、與記憶體測試邏輯之間進行多工或共享。多工可導致時序的小延遲。然而,核心對記憶體的存取可整體改進。
因此,本揭露的實施例可產生比如圖2所示的典型的匯流排結構方法遠遠更快且更有面積效率的對晶片資源的使用。一旦產生碼,將知道是否將使用給定的記憶體元件。如果一個未使用的記憶體元件未以其他方式指派至
核心,可將其斷電。本揭露的實施例可用於資料記憶體。但是,此類分配將需要由應用程式的創造者所開發的軟體來控制。本揭露之實施例可導致一些記憶體的浪費。邏輯記憶體分區可在精細度上藉由實體的記憶體大小來定義並約束。
已就一或多個實施例而論描述本揭露,且應理解,除了明確陳述者外,許多同等案、替代案、變化案及修改案係可行的且在本揭露之範疇內。雖然本揭露易受各種修改及替代形式,其特定實例實施例已顯示在圖式中且在本文中詳細描述。然而,應當理解,本文描述之具體實例性實施例非意欲將本揭露限制於本文所揭露的具體形式。
100:系統;晶片選擇電路
102:記憶體池
104:核心
106:核心
108:核心
110:核心;記憶體區塊
112:記憶體區塊
114:記憶體區塊
116:晶片選擇電路
Claims (17)
- 一種電子設備,其包含:複數個處理核心,該複數個處理核心包括一第一核心及一第二核心;一記憶體池,該記憶體池包括複數個記憶體區塊,其中各記憶體區塊包括一資料埠及一記憶體檢查埠;第一連接,該等第一連接在該第一核心與該複數個記憶體區塊的各者之間;第二連接,該等第二連接在該第二核心與該複數個記憶體區塊的各者之間;及一晶片選擇電路(chip selection circuit),其經組態:以藉由下述而在該第一核心與該第二核心之間共享對於該記憶體池的存取:通過該等記憶體區塊的各別的資料埠實現從該第一核心至該等記憶體區塊的資料之存取;且通過該等記憶體區塊的各別的記憶體檢查埠實現從該第二核心至該等記憶體區塊的資料之存取;及藉由通過該等記憶體區塊的該等各別的記憶體檢查埠實現從一第三核心至該等記憶體區塊的資料之存取,而在該複數個處理核心中的該第一核心、該第二核心、與該第三核心之間共享對於該記憶體池的存取。
- 如請求項1之設備,其中該晶片選擇電路進一步經組態以通過該等記憶體區塊的該等各別的記憶體檢查埠實現從記憶體測試電路至該等記憶體區塊的信號之存取。
- 如請求項1之設備,其中該晶片選擇電路進一步經組態以基於該第一核心係比該第二核心較高優先性的一核心之一判定,而通過該等各別的資 料埠實現來自該第一核心的資料之存取並且通過該等各別的記憶體檢查埠實現來自該第二核心的資料之存取。
- 如請求項1之設備,其中該晶片選擇電路進一步經組態以同時:通過一給定記憶體區塊的一對應的資料埠實現從該第一核心至該給定記憶體區塊的資料之存取;且通過該給定記憶體區塊的一對應的記憶體檢查埠實現從該第二核心至該給定記憶體區塊的資料之存取。
- 如請求項1之設備,其中該等記憶體區塊具有不同的大小。
- 如請求項1之設備,其中該等記憶體區塊至各別的核心的一指派係在該第一核心及該第二核心執行軟體的編譯期間判定。
- 如請求項1之設備,其中該晶片選擇電路進一步經組態以:從一編譯程序判定該等記憶體區塊至核心的一指派;及基於一給定記憶體區塊未指派至一核心之一判定,關閉該給定記憶體區塊。
- 一種記憶體管理方法,其包含:存取複數個處理核心,該複數個處理核心包括一第一核心及一第二核心;存取一記憶體池,該記憶體池包括複數個記憶體區塊,其中各記憶體區塊包括一資料埠與一記憶體檢查埠;建立第一連接,該等第一連接在該第一核心與該複數個記憶體區塊的各者之間;建立第二連接,該等第二連接在該第二核心與該複數個記憶體區塊的各者之間;及在該第一核心與該第二核心之間共享對於該記憶體池的存取, 其中藉由下述而共享對於該記憶體池的存取:通過該等記憶體區塊的各別的資料埠實現從該第一核心至該等記憶體區塊的資料之存取;且通過該等記憶體區塊的各別的記憶體檢查埠實現從該第二核心至該等記憶體區塊的資料之存取;及藉由通過該等記憶體區塊的該等各別的記憶體檢查埠實現從一第三核心至該等記憶體區塊的資料之存取,而在該複數個處理核心中的該第一核心、該第二核心、與該第三核心之間共享該記憶體池。
- 如請求項8之方法,其進一步包含通過該等記憶體區塊的該等各別的記憶體檢查埠實現從記憶體測試電路至該等記憶體區塊的信號之存取。
- 如請求項8之方法,其進一步包含基於該第一核心係比該第二核心較高優先性的一核心之一判定,而通過該等各別的資料埠實現來自該第一核心的資料之存取並且通過該等各別的記憶體檢查埠實現來自該第二核心的資料之存取。
- 如請求項8之方法,其進一步包含同時:通過一給定記憶體區塊的一對應的資料埠實現從該第一核心至該給定記憶體區塊的資料之存取;且通過該給定記憶體區塊的一對應的記憶體檢查埠實現從該第二核心至該給定記憶體區塊的資料之存取。
- 如請求項8之方法,其中該等記憶體區塊具有不同的大小。
- 如請求項8之方法,其進一步包含在該第一核心及該第二核心執行軟體的編譯期間判定該等記憶體區塊至各別的核心的一指派。
- 如請求項8之方法,其進一步包含:從一編譯程序判定該等記憶體區塊至核心的一指派;及基於一給定記憶體區塊未指派至一核心之一判定,關閉該給定記憶體區塊。
- 一種記憶體管理方法,其包含:將來源指令編譯成由一第一核心及一第二核心執行的物件碼以在一目標機器上操作;識別該第一核心及該第二核心的程式記憶體需求;識別該目標機器上可用的複數個記憶體區塊之各者的一大小及數量;基於該等程式記憶體需求以及如請求項8至14中任一項之該等記憶體區塊的該大小及數量,指派該等記憶體區塊的個別者至該第一核心或該第二核心。
- 一種非暫時性機器可讀媒體,其包括若干指令,該等指令將一處理器組態以,在當由該處理器載入且執行時,執行如請求項8至14中任一項之方法。
- 一種非暫時性機器可讀媒體,其包括若干指令,該等指令將該處理器組態以,在當由一處理器載入且執行時:將來源指令編譯(compiling)成由一第一核心及一第二核心執行的物件碼以在一目標機器上操作;識別該第一核心及該第二核心的程式記憶體需求;識別該目標機器上可用的(available)複數個記憶體區塊之各者的一大小及數量;及基於該等程式記憶體需求以及如請求項8至14中任一項之該等記憶體區塊的該大小及數量,指派該等記憶體區塊的個別者至該第一核心或該第二核心。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/974,480 US10635494B2 (en) | 2018-05-08 | 2018-05-08 | Memory pool allocation for a multi-core system |
US15/974,480 | 2018-05-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201947397A TW201947397A (zh) | 2019-12-16 |
TWI803596B true TWI803596B (zh) | 2023-06-01 |
Family
ID=66484211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108109179A TWI803596B (zh) | 2018-05-08 | 2019-03-18 | 電子設備、記憶體管理方法及非暫時性機器可讀媒體 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10635494B2 (zh) |
CN (2) | CN117873912A (zh) |
DE (1) | DE112019002336T5 (zh) |
TW (1) | TWI803596B (zh) |
WO (1) | WO2019217166A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11249805B2 (en) | 2020-05-26 | 2022-02-15 | Pensando Systems, Inc. | Methods and systems for hardware-based memory resource allocation |
US11275669B2 (en) | 2020-07-09 | 2022-03-15 | Pensando Systems, Inc. | Methods and systems for hardware-based statistics management using a general purpose memory |
JP2024509954A (ja) * | 2021-03-12 | 2024-03-05 | 華為技術有限公司 | メモリ共有制御方法及びデバイス、コンピュータデバイス、並びにシステム |
CN116779015A (zh) * | 2022-03-11 | 2023-09-19 | 长鑫存储技术有限公司 | 存储芯片的测试方法、装置、存储介质与电子设备 |
US20240037028A1 (en) * | 2022-07-27 | 2024-02-01 | Texas Instruments Incorporated | Software sharing across multiple cores |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108495A1 (en) * | 2003-11-14 | 2005-05-19 | Lsi Logic Corporation | Flexible design for memory use in integrated circuits |
US20070070795A1 (en) * | 2005-09-28 | 2007-03-29 | Hynix Semiconductor Inc. | Multi-port memory device with serial input/output interface |
US20090059711A1 (en) * | 2007-08-29 | 2009-03-05 | Chi-Sung Oh | Routing access with minimized bus area in multi-port memory device |
TW201637414A (zh) * | 2014-11-21 | 2016-10-16 | 凱為公司 | 開放流協定硬體加速計時器實施系統與方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058460A (en) | 1996-06-28 | 2000-05-02 | Sun Microsystems, Inc. | Memory allocation in a multithreaded environment |
US6226720B1 (en) * | 1998-12-11 | 2001-05-01 | International Business Machines Corporation | Method for optimally configuring memory in a mixed interleave system |
US6480941B1 (en) * | 1999-02-23 | 2002-11-12 | International Business Machines Corporation | Secure partitioning of shared memory based multiprocessor system |
US6691216B2 (en) * | 2000-11-08 | 2004-02-10 | Texas Instruments Incorporated | Shared program memory for use in multicore DSP devices |
US7380085B2 (en) * | 2001-11-14 | 2008-05-27 | Intel Corporation | Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor |
US6954821B2 (en) * | 2003-07-31 | 2005-10-11 | Freescale Semiconductor, Inc. | Crossbar switch that supports a multi-port slave device and method of operation |
US7447845B2 (en) * | 2006-07-13 | 2008-11-04 | International Business Machines Corporation | Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8490111B2 (en) | 2011-04-16 | 2013-07-16 | Throughputer, Inc. | Efficient network and memory architecture for multi-core data processing system |
JP2012208975A (ja) * | 2011-03-29 | 2012-10-25 | Renesas Electronics Corp | 半導体装置 |
US9645924B2 (en) * | 2013-12-16 | 2017-05-09 | International Business Machines Corporation | Garbage collection scaling |
EP3198466A4 (en) * | 2014-09-25 | 2018-04-18 | Intel Corporation | Multicore memory data recorder for kernel module |
US9798886B2 (en) * | 2015-07-08 | 2017-10-24 | International Business Machines Corporation | Bio-medical sensing platform |
WO2017011223A1 (en) | 2015-07-10 | 2017-01-19 | Rambus, Inc. | Thread associated memory allocation and memory architecture aware allocation |
KR20180039785A (ko) * | 2016-10-10 | 2018-04-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2018
- 2018-05-08 US US15/974,480 patent/US10635494B2/en active Active
-
2019
- 2019-03-18 TW TW108109179A patent/TWI803596B/zh active
- 2019-05-01 DE DE112019002336.5T patent/DE112019002336T5/de active Pending
- 2019-05-01 CN CN202410055096.5A patent/CN117873912A/zh active Pending
- 2019-05-01 CN CN201980029698.0A patent/CN112074820B/zh active Active
- 2019-05-01 WO PCT/US2019/030111 patent/WO2019217166A1/en active Application Filing
-
2020
- 2020-04-08 US US16/842,870 patent/US11461139B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108495A1 (en) * | 2003-11-14 | 2005-05-19 | Lsi Logic Corporation | Flexible design for memory use in integrated circuits |
US20070070795A1 (en) * | 2005-09-28 | 2007-03-29 | Hynix Semiconductor Inc. | Multi-port memory device with serial input/output interface |
US20090059711A1 (en) * | 2007-08-29 | 2009-03-05 | Chi-Sung Oh | Routing access with minimized bus area in multi-port memory device |
TW201637414A (zh) * | 2014-11-21 | 2016-10-16 | 凱為公司 | 開放流協定硬體加速計時器實施系統與方法 |
Also Published As
Publication number | Publication date |
---|---|
DE112019002336T5 (de) | 2021-03-04 |
US20190347133A1 (en) | 2019-11-14 |
CN112074820B (zh) | 2024-01-05 |
CN112074820A (zh) | 2020-12-11 |
US20200233714A1 (en) | 2020-07-23 |
CN117873912A (zh) | 2024-04-12 |
US10635494B2 (en) | 2020-04-28 |
US11461139B2 (en) | 2022-10-04 |
TW201947397A (zh) | 2019-12-16 |
WO2019217166A1 (en) | 2019-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI803596B (zh) | 電子設備、記憶體管理方法及非暫時性機器可讀媒體 | |
US7797503B2 (en) | Configurable memory system and method for providing atomic counting operations in a memory device | |
US10318407B2 (en) | Allocating a debug instruction set based on the current operating state in a multi-instruction-set data processing apparatus | |
US7793038B2 (en) | System and method for programmable bank selection for banked memory subsystems | |
US8190839B2 (en) | Using domains for physical address management in a multiprocessor system | |
US9405700B2 (en) | Methods and apparatus for virtualization in an integrated circuit | |
US11048588B2 (en) | Monitoring the operation of a processor | |
US6920521B2 (en) | Method and system of managing virtualized physical memory in a data processing system | |
US20070283123A1 (en) | Function-based virtual-to-physical address translation | |
WO2018013158A1 (en) | Memory controller with flexible address decoding | |
JP2007183962A (ja) | 一体型メモリ及びコントローラ | |
Yazdanbakhsh et al. | In-dram near-data approximate acceleration for gpus | |
Huang et al. | Shuhai: A tool for benchmarking high bandwidth memory on FPGAs | |
US7882327B2 (en) | Communicating between partitions in a statically partitioned multiprocessing system | |
JP2018136922A (ja) | メモリープールを有するコンピューティングシステムのためのメモリー分割 | |
JP2001043180A (ja) | マイクロプロセッサおよびそのための記憶装置 | |
JP2013532880A (ja) | メモリ領域を埋めるためのプロセッサ支援 | |
CN114945984A (zh) | 扩展存储器通信 | |
JP7245842B2 (ja) | デバイスをデバッグするときにメタデータにアクセスするための装置及び方法 | |
JP7317099B2 (ja) | ガード・タグ紛失の取り扱い | |
Kikuchi et al. | Development of Soft-Core Processor with Efficient Array Data Transfer Mechanism | |
US20240037028A1 (en) | Software sharing across multiple cores | |
Shao | Reducing main memory access latency through SDRAM address mapping techniques and access reordering mechanisms | |
CN117742962A (zh) | 一种虚拟机资源的管理方法、装置、设备及存储介质 | |
KR20240111293A (ko) | Numa 아키텍처 기반의 nmp 에뮬레이터 및 그 작동 방법 |