TW202009713A - 基於人工智慧應用程式的資料儲存 - Google Patents

基於人工智慧應用程式的資料儲存 Download PDF

Info

Publication number
TW202009713A
TW202009713A TW107139346A TW107139346A TW202009713A TW 202009713 A TW202009713 A TW 202009713A TW 107139346 A TW107139346 A TW 107139346A TW 107139346 A TW107139346 A TW 107139346A TW 202009713 A TW202009713 A TW 202009713A
Authority
TW
Taiwan
Prior art keywords
weight
artificial intelligence
memory
memory device
neuron
Prior art date
Application number
TW107139346A
Other languages
English (en)
Other versions
TWI696072B (zh
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 TW202009713A publication Critical patent/TW202009713A/zh
Application granted granted Critical
Publication of TWI696072B publication Critical patent/TWI696072B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

處理器接收輸入資料進行處理。在判斷輸入資料對應人工智慧應用程式後,處理器產生人工智慧命令,用於對記憶裝置進行讀取或寫入操作。記憶裝置配置為存儲包括在人工智慧應用程式的多種應用程式的資料。人工智慧命令以操作代碼為特徵,並包括人工智慧應用程式的一或多個組件中,對應於輸入資料的資訊。處理器將人工智慧命令和輸入資料發送到存儲控制器,存儲控制器管理記憶裝置,其中記憶裝置由存儲控制器使用操作代碼和人工智慧命令中包含的資訊,執行記憶裝置的讀取或寫入操作。處理器接收在記憶裝置上執行的讀取或寫入操作的結果。

Description

基於人工智慧應用程式的資料儲存
本發明所揭露之內容,係關於一般用於人工智慧應用程式的資料儲存的裝置,系統和方法。
一些記憶存儲裝置的存儲控制器(也稱為記憶控制器),使用基於文件的管理,來管理記憶裝置中的資料存儲。這種存儲控制器採用文件/閃存轉換層(file/flash translation layer,FTL),以對應(map)各應用程式的邏輯區塊地址(logical block address),到各個存儲裝置的物理區塊地址(physical block address)。
本案之公開內容描述了用於存儲在記憶存儲裝置中人工智慧(AI)為基礎之應用程式,其管理資料存取之設備,系統和方法。在一些實施方式中,記憶裝置包括存儲控制器,其用於藉由耦合到記憶裝置的一或多個處理器,以管理記憶裝置之存取。處理器向存儲控制器,發送用於存取記憶存儲裝置中記憶位置的命令,例如讀取命令或寫入命令,或兩者。命令可用於人工智慧應用程式的資料存取,也可用於非人工智慧應用程式(後續稱為常規應用程式)。對於非人工智慧應用程式命令(也稱為非人工智慧命令),存儲控制器加載目標記憶分頁或記憶區塊,以藉由處理器執行直接存取。對於人工智慧應用程式命令(也稱為人工智慧命令),存儲控制器在記憶裝置執行本地存取操作,並發送操作結果回至處理器。
在執行本地人工智慧命令的存取操作中,存儲控制器利用適合人工智慧的獨特結構的各種優化。例如,在一些實施方式中,人工智慧應用程式對應於人工神經網路(artificial neural network, ANN)。在其中一些實施方式中,存儲控制器存儲人工智慧資料的位元,例如,存儲人工神經網路的特定神經元的權重(weighting),於記憶存儲裝置的相同分頁(page)中。或者,存儲控制器將權重分組,並將各組存儲在相同分頁中,不同組分別在不同分頁。在其中一些實施方式中,表示權重的資料中最高有效位元(most significant bits、MSB)比資料中最低有效位元(Least significant bits,LSB)更重要。在這種情況下,存儲控制器將最高有效位元存儲在單層單元(single level cell,SLC)中,並將最低有效位元存儲在多層單元(multi‑level cell,MLC)、三層單元中(triple-level cell,TLC)、或四層單元中(quad-level cell,QLC)。可附加地或可替代地,存儲控制器存儲具有糾錯碼(error correcting code,ECC)的最高有效位元,其糾錯碼大於最低有效位元的糾錯碼。在一些實施方式中,人工神經網路的一些神經元比人工神經網路中其他神經元更重要。在這種情況下,存儲控制器存儲單層單元中重要神經元的權重,而其他神經元的權重存儲在多層單元、三層單元、或四層單元中。在一些實施方式中,存儲控制器複製在多個存儲分頁中神經元的重要權重以提供備份。在一些實施方式中,存儲控制器將經常存取的神經元,存儲在記憶存儲裝置的記錄區域中,同時存儲其他神經元在常規存儲裝置中(例如,記憶存儲裝置的非記錄區域)。
一般而言,一裝置可包括存儲命令的一或多個處理器和非暫時性媒介(non-transitory media)。當由一或多個處理器執行時,指令被配置為引發一或多個處理器執行以下操作。一或多個處理器從輸入設備接收輸入資料,以進行處理。在判斷輸入資料對應於人工智慧應用程式的條件下,一或多個處理器產生用於執行一或多個用於記憶裝置的讀取或寫入操作的人工智慧命令,此記憶裝置用於存儲由一或多個處理器處理的多個應用程式的資料,其中多個應用程式包括人工智慧應用程式。人工智慧命令以操作代碼為特徵,其包括與輸入資料對應的人工智慧應用程式的一或多個組件的資訊。一或多個處理器將人工智慧命令和輸入資料,發送到管理存儲裝置的存儲控制器。記憶裝置的一或多個讀取或寫入的操作,由存儲控制器藉由操作代碼和包括人工智慧命令的資訊所執行。一或多個處理器從存儲控制器,接收在記憶裝置上執行的一或多個讀取或寫入操作的結果。
根據本發明的特定實施方式,可以包括以下一或多個特徵。在判斷輸入資料對應於包括多個應用程式中的非人工智慧應用程式的條件下,一或多個處理器可存取記憶裝置中對應於輸入資料的一或多個記憶位置,也可在存取的一或多個記憶位置上,執行一次或多次讀寫操作。
人工智慧應用程式的一或多個組件(component),可以在人工神經網路中包括一或多個神經元(neuron)。輸入資料可包括,與一或多個神經元連接的一或多個輸入或輸出的對應權重。操作代碼可對應於(i)人工神經網路中特定神經元的各別讀取或寫入、(ii)人工神經網路中特定神經元的多個各別讀取或寫入、或(iii)人工神經網路中特定神經元的批量讀取或寫入。
根據本發明的設備,還可以包括配置為執行以下操作的存儲控制器:當存儲控制器從一或多個處理器接收到人工智慧命令,可從人工智慧命令所包括的資訊中,獲取對應於一或多個神經元中第一神經元的輸入連接或輸出連接的一權重集合。存儲控制器可以將權重集合與第一神經元進行聯接。存儲控制器可在記憶裝置的一特定分頁/或區塊中,存儲第一神經元的權重集合,以回應權重集合與第一神經元的聯接。記憶裝置的特定分頁,用於存儲與第一神經元相關的權重。
回應權重集合與第一神經元的聯接,存儲控制器可以將權重集合劃分為第一子集和第二子集。存儲控制器可以將第一子集存儲在記憶裝置中一第一通道(channel)的相同分頁或區塊中,然後存儲第二子集在記憶裝置中一第二通道的相同分頁或區塊中。
存儲控制器從一或多個處理器接收到人工智慧命令後,可以從人工智慧命令中獲取包括的資訊,其為對應於一或多個神經元中,第一神經元的一或多個輸入連接或輸出連接的神經元的權重集合。存儲控制器可判斷權重集合中一第一權重是否具有第一重要值、以及權重集合中一第二權重是否具有第二重要值,其中第二重要值小於第一重要值。回應此判斷,存儲控制器可以將第一權重,存儲記憶裝置的第一分頁的一單層單元中,將第二權重,存儲在記憶裝置的第二分頁的多層單元、三層單元、或四層單元中。
存儲控制器可判斷權重集合的第一權重,具有權重集合的第一重要值,以及第二權重具有權重集合的第二重要值,其中第二重要值小於第一重要值。回應此判斷,存儲控制器可以將第一權重存儲在記憶裝置的分頁或區塊中,並複製在記憶裝置的至少一個附加分頁的第一權重,並可以無複製的方式將第二權重存儲在記憶裝置的一分頁或一區塊中。
從一或多個處理器接收到人工智慧命令時,存儲控制器可進一步獲得一或多個神經元中,第二神經元的輸入連接或輸出連接中的一或多個第二組權重。存儲控制器可判斷第一神經元比第二神經元更頻繁地被存取,並判斷第二神經元與一或多個神經元中其他神經元,具有相同的存取速率。回應於此判斷,存儲控制器可以將權重集合的第一組,存儲在用於記錄的記憶裝置的第一區域中,並將權重集合的第二組,存儲在用於記錄的記憶裝置的第二區域中,用於長期存放而非記錄(logging)。
存儲控制器可判斷權重集合的第一權重具有特別重要值,存儲控制器可將特別重要值與閾重要值(threshold importance value)進行比較。以特別重要值大於或等於閾重要值的比較結果為條件,存儲控制器可執行完整糾錯檢查,作為第一權重的一或多個讀取或寫入操作的一部分。根據特別重要值小於閾重要值的比較結果所代表,存儲控制器可以執行部分糾錯檢查。部分糾錯檢查可依據為第一權重對應的最高有效位元以執行、或可依據中對與第一權重對應的最低有效位元以執行。
存儲控制器可以決定權重集合的每個權重的第一部分(Portion)和第二部分,其中每個權重的第一部分和第二部分可分別對應於權重的資訊位元的第一分段和第二分段,第一部分和第二部分的特徵在於相應的相對重要性值。存儲控制器可將權重的第一部分存儲在記憶裝置的第一分頁的權重集合中,並可存儲權重的第二部分存儲在記憶裝置的第二分頁的權重集合中,其中第一次錯誤檢查能力和第二次不同錯誤檢查能力分別對應於第一分頁和第二分頁。
存儲控制器可決定權重集合中每個權重的第一部分和第二部分,其中每個權重的第一部分和第二部分,可分別對應權重的資訊位元的第一分段和第二分段。第一分段和第二分段的特徵在於相應的相對重要值。存儲控制器可將權重集合中權重的第一部分存儲在記憶裝置的第一區塊中,並存儲權重集合中權重的第二部分在記憶裝置的第二區塊,其中對應於第一區塊的多個程式/擦除週期的數量,可不同於對應第二區塊的程式/擦除週期的數量。
記憶裝置可包括:至少第一分割區(partition),用於存儲包括多個應用程式的人工智慧應用程式對應的資料;以及第二分割區,用於存儲包括在多個應用程式中的非人工智慧應用程式所對應的資料。
記憶裝置可以包括非揮發性(NVM)存儲器、通用快閃記憶體儲存(UFS)、快捷外設互聯標準(PCIe)存儲器、相變化記憶體(PCM)、可變電阻式記憶體(ReRAM)、磁阻式隨機存取記憶體(MRAM)、動態隨機存取記憶體、磁碟、或光碟等。
另一觀點,本發明的系統包括一或多個處理器和一或多個存儲控制器,其中一或多個存儲控制器管理一或多個記憶裝置中不同的記憶裝置。一或多個處理器中每個處理器配置為執行以下操作。處理器從輸入設備接收輸入資料以進行處理。在判斷輸入資料為對應人工智慧應用程式的條件下,處理器產生人工智慧命令,用於執行記憶裝置的一或多個讀寫操作,記憶裝置配置為存儲一或多個處理器所處理的多個應用程式之資料。多個應用程式包括人工智慧應用程式、以操作代碼為特徵的人工智慧命令、並包括對應於輸入資料的人工智慧應用程式中一或多個組件的資訊。處理器將人工智慧命令和輸入資料,發送到管理記憶裝置的存儲控制器,其中記憶裝置的一或多個讀寫操作由存儲控制器使用操作代碼和包括人工智慧命令的資訊所執行。處理器從存儲控制器接收在記憶裝置上執行的一或多個讀取或寫入操作的結果。人工智慧應用程式的一或多個組件,在人工神經網路中包括一或多個神經元,輸入資料包括一或多個神經元中一或多個連接或輸出連接,所對應的權重。在判斷輸入資料對應於多個應用程式中包括非人工智慧應用程式的條件下,處理器存取記憶裝置中對應於輸入資料的一或多個記憶位置,並在存取的一或多個記憶位置上執行一或多個讀寫操作。
一或多個存儲控制器的存儲控制器,配置為執行以下操作。收到人工智慧命令並從一或多個處理器接收輸入資料後,存儲控制器獲得從人工智慧命令中包括的資訊、以及對應於一或多個神經元中第一神經元的一或多個輸入連接或輸出連接一權重集合。存儲控制器將權重集合與第一神經元聯接起來。回應於權重集合與第一神經元的聯接,存儲控制器執行記憶存取操作,此記憶存取操作包含在對應的記憶裝置上聯接第一神經元的權重集合。
本發明之一特定實施方式可以包括以下特徵中的一或多個。操作代碼可以對應於(i)人工神經網路中的特定神經元的各別讀取或寫入、(ii)人工神經網路中的多個神經元的多個讀取或寫入、或(iii)人工神經網路中的批量神經元的批量讀取或寫入。
記憶存取操作可包括存儲在記憶裝置內一特定分頁或區塊中,聯接權重集合與第一神經元。記憶裝置中一特定分頁,配置為存儲與第一神經元相聯接的權重。
執行記憶存取操作可以包括將權重集合劃分為第一子集和第二子集。存儲控制器可以將第一子集存儲在記憶裝置的第一通道中的相同分頁或區塊,並存儲第二子集在記憶裝置的第二通道的相同分頁或區塊。
執行記憶存取操作可包括判斷權重集合中第一權重具有一第一重要值、以及權重集合的第二權重具有一第二重要值,其中第二重要值小於第一重要值。回應於此判斷,存儲控制器可以將第一權重存儲在記憶裝置的第一分頁的一單層單元中,將第二權重存儲在記憶裝置的第二分頁的多層單元、三層單元、或四層單元中。
執行記憶存取操作可包括判斷權重集合的第一權重具有第一重要值和權重集合的第二權重具有第二重要值,其中第二重要性值小於第一重要性值。為回應此判斷,存儲控制器可將第一權重存儲在存儲裝置的分頁或區塊中,複製第一權重在記憶裝置的至少一分頁中,並可以將第二權重存儲在存儲裝置的分頁或區塊中,而無複製。
在從一或多個處理器接收到人工智慧命令時,存儲控制器可以進一步獲得一或多個神經元中第二神經元的一或多個輸入或輸出連接的第二權重集合。存儲控制器可判斷第一神經元比第二神經元更頻繁地被存取,並且第二神經元具有與其一或多個他神經元相同的存取速率。回應於此判斷,存儲控制器可以將第一權重集合,存儲在用於記錄和存儲的記憶裝置中第二區域內,其用於長期存儲,而非記錄。
執行記憶存取操作可包括判斷權重集合的第一權重具有特別重要值。存儲控制器可以將特別重要值與閾重要值進行比較。根據比較結果表明特別重要值大於或等於閾重要值的條件下,存儲控制器可執行完整的糾錯檢查(full error correction check),以作為第一權重的一或多個讀寫操作的一部分。根據比較結果表明特別重要值小於閾重要值的條件下,存儲控制器可執行部分糾錯檢查(partial error correction check),以作為第一權重的一或多個讀寫操作的一部分,其中部分糾錯檢查是對應第一權重的最高有效位之一所進行,或與對應第一權重的最低有效位所進行。
執行記憶存取操作可以包括決定權重集合中的各權重的第一部分和第二部分,其中各權重的第一部分和第二部分,可分別對應於權重的資訊位元的第一分段(Section)和第二分段。第一分段和第二分段的特徵是對應的相對重要值(relative importance value)。存儲控制器可存儲權重集合中權重的第一部分,在記憶裝置的第一分頁中,並存儲權重集合中權重的第二部分,在記憶裝置的第二分頁中,其中第一次錯誤檢查能力和第二次不同錯誤檢查能力,分別對應第一分頁和第二分頁。
執行記憶存取操作可以包括決定權重集合的每個權重的第一部分和第二部分,其中各權重第一部分和第二部分,可以分別對應於權重對應的資訊位元的第一分段和第二分段,第一分段和第二分段的特徵是對應的相對重要值。存儲控制器可存儲權重集合中權重的第一部分,在記憶裝置的第一區塊中,並存儲權重集合中權重的第二部分,在記憶裝置的第二區塊中,其中對應第一區塊的多個程式/擦除週期(program/erase cycle)的數量,可不同於對應第二區塊的多個程式/擦除週期的數量。
系統的每個記憶裝置可包括至少一第一分割區,用於存儲多個應用程式中所包括的人工智慧應用程式對應的資料;以及一第二分割區,用於存儲多個應用程式中所包括的非人工智慧應用程式對應的資料。
系統的每個記憶裝置可包括非揮發性(NVM)存儲器、通用快閃記憶體儲存(UFS),快捷外設互聯標準(PCIe)存儲器、相變化記憶體(PCM)、可變電阻式記憶體(ReRAM)、磁阻式隨機存取記憶體(MRAM)、動態隨機存取記憶體、磁碟、或光碟等。
上述技術的實施方式還包括方法,計算機程式產品以及計算機可讀媒介(computer-readable media)。此方法包括執行上述動作的一或多個處理器和記憶裝置的一或多個存儲控制器。此計算機程式產品適當地體現在非暫時性機器可讀媒介中,該媒介存儲可由一或多個處理器執行的指令。指令配置為使一或多個處理器執行上述動作。如此,計算機可讀媒介進行存儲指令,其在於使一或多個處理器執行時被配置為執行上述動作。
依據上述和本說明書的以下部分中描述的新穎特徵時,記憶裝置可以為人工智慧應用提供有效的存儲功能。藉由啟用記憶裝置中存儲控制器,進行記憶裝置上人工智慧資料的本地存取操作,可以分攤由主處理器(例如,中央處理單元(CPU)或圖形處理單元(GPU)執行的操作。這樣,可降低在CPU或GPU上或兩者上的負載,並可以減少CPU、GPU與記憶裝置之間的資料移動。這有利於人工智慧應用程式,因用於人工智慧推理和訓練,其倚靠具有小資料單元的資料量(例如,4位元組資料單位)。
通過調整存儲控制器來支持神經元為基礎的映射表(mapping table)設計,可以提高系統性能,例如,達到更快速存取人工智慧資料。映射表設計,將人工神經網路的神經元,映射到記憶裝置的物理區塊地址(PBA)或物理分頁地址(PPA)。這樣的映射,包括所公開的日誌記錄機制,支持特定於人工智慧的資料的存取流程,其可顯示高位置特徵(例如,某些資料存取比其他資料更頻繁)。通過啟用更可靠的資料存儲,可以提高系統性能,例如,較低的資料遺失,藉由調整存儲控制器來存儲人工智慧資料的最高有效位元,相對於人工智慧資料單位的最低有效位元,具有較高的防錯能力(例如,存儲在單層單元中、或者以更強的糾錯碼執行存儲、或者在多個存儲分頁或區塊中複製)。此外,也可透過耗損平衡(Wear leveling),以提高系統性能。
本發明揭露的技術可同時使用多個存儲裝置來加速人工智慧計算(推理/訓練)。這些技術也可以適應與現有存儲架構的兼容,例如,通過採用不同的記憶分割區來存儲人工智慧資料和存儲非人工智慧資料。
所公開的技術可以應用於各種類型的存儲系統,例如,基於NAND快閃記憶體或NOR快閃記憶體的存儲系統,例如通用快閃記憶體儲存(UFS),快捷外設互聯標準(PCIe)存儲器、多媒體記憶卡(eMMC)存儲器、雙列直插式記憶體模組(DIMM)存儲器等。另外或可替代地,該技術可以應用於各種類型的其他記憶裝置,例如靜態隨機存取記憶體(SRAM),動態隨機存取記憶體(DRAM)、可變電阻式記憶體(ReRAM)、磁阻式隨機存取記憶體(MRAM)、或相變化記憶體(PCM)等。該技術可以應用於磁碟或光碟等。
本發明所公開的技術可以應用於使用人工智慧機制的各種應用,例如用於深度學習的人工神經網路。這些應用包括遊戲、自然語言處理、專家系統、視覺系統、語音識別、手寫識別、智能機器人、資料中心,雲端計算服務和汽車應用等。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施方式,並配合所附圖式詳細說明如下:
一些人工智慧應用程式使用深度學習作為一種計算技術,其中人工神經網路的人工智慧是用無監督的預訓練等方法進行的。在這種情況下,人工神經網路是一個相互聯繫的節點組。例如類似於人類大腦中的巨大神經元網路。圖1A和1B分別繪示人工神經網路100的實施例和人工神經網路100的神經元的分解圖。如圖1所示。如圖1A所示,人工神經網路100是連接單元或節點的集合,例如N0、N1、N2、N3、N4、N5、N6、N7和N8,它們被稱為人工神經元(例如,動物大腦中的生物神經元的簡化版本)。人工神經元以分層形成組織。例如,分層L0包括人工神經元N0、N1和N2;分層L1包括人工神經元N3、N4、N5和N6;分層L2包括人工神經元N7和N8。
在一些實施方式中,人工神經網路的不同分層,在其輸入上執行不同類型的變換,其中一分層是人工神經網路的第一分層或輸入分層。例如分層L0,而另一層是人工神經網路的最後一分層或輸出分層(例如分層L2)。人工神經網路在輸入分層和輸出分層之間包括一或多個內部分層,例如層L1,其介於輸入分層與輸出分層之間。在一次或多次通過內部分層之後,信號從輸入分層行進到輸出分層。
在一些實施方式中,人工神經元之間的每個連接(例如,從N2到N6或從N6到N8的連接),可以將信號從一個發送到另一個。接收信號的人工神經元可以對其進行處理,然後發信號至連接的人工神經元。在一些實施方式中,人工神經元間之連接的信號是一個實數,並且每個人工神經元的輸出是通過其輸入之和的非線性函數來計算的。每個連接通常具有隨著學習過程而調整的權重。權重可增加或減少連接處信號的強度。圖1B繪示了人工神經元N6的分解圖,其中人工神經元N6是人工神經網路中人工神經元的一實施方式。從人工神經網路100的人工神經元的輸入信號x0 x1 x2 ,例如分別來自人工神經元N0、N1和N2,被送到人工神經元N6。每個輸入信號,根據對應的連接所相關的權重進行加權,並且加權信號由人工神經元接收和處理。例如,從人工神經元N0到人工神經元N6的連接具有權重w0 ,從N0發送到N6的信號x0 也根據此權重w0 進行加權,使得由N6接收到的信號的值是w0 x0 。同樣地,從人工神經元N1和N2到人工神經元N6的連接分別具有權重w1 w2 ,使得N6從N1和N2接收的信號的值分別是w1 x1 w2 x2
人工神經元在內部處理加權輸入信號,例如,通過根據輸入改變其內部狀態(稱為激活),並根據輸入和激活產生輸出信號。例如,人工神經元N6產生輸出信號,該輸出信號是輸出函數f的結果,其被應用於由人工神經元N6接收的輸入信號的加權組合。通過這種方式,人工神經網路100的人工神經元形成了一個加權、具方向性的圖繪,其連接了一些神經元的輸出,到其他神經元的輸入。在一些實施方式中,可以通過學習過程(例如,深度學習)來修改人工神經元的權重、激活函數、輸出函數或這些參數的任何組合。
在某些情況下,深度學習涉及存儲用於訓練人工神經網路的大量人工智慧資料(例如,權重)。傳統的存儲機制依賴於基於文件的管理,使用文件/快閃記憶轉換層(FTL),其中文件名作為索引在存儲資料中查找。在常規存儲中,資料以512位元組到4096位元組的大小為單位存儲在存儲記憶裝置中,例如,使用基於區塊映射之方式。另一方面,人工智慧資料,例如權重,不對應於基於名稱的結構,這樣映射到基於文件名的模型,例如,使用文件/快閃記憶轉換層(FTL),會十分困難。另外,人工智慧資料的量可以很小,例如大約4個位元組。使用基於區塊的映射以512位元組為單位的資料,存儲效率低,導致存儲裝置空間浪費相當大。
因此,本發明設計一可用於存儲和處理人工智慧資料的新技術。這種用於存儲和處理人工智慧資料的新技術,在本說明書中有清楚描述。在以下幾段落中,在一些實施方式,一個新的神經元的映射表設計,用於對應人工神經元映射到PBA、PPA、或兩者兼而有之。所描述的技術還使用資料管理,耗損平衡和記錄機制,其依靠人工神經網路的獨特功能來提高存取人工智慧資料的效能和可靠性。人工神經網路的這些特徵包括:容錯,例如,某些資料錯誤不影響最終結果;資料地點,例如,某些人工智慧資料之存取,較其他人工智慧資料更頻繁;資料重要性差異,例如某些人工智慧資料比其他更重要,例如在一些實施方式中,最高有效位元的數位資訊存儲權重,比最低有效位元更重要(在某些實施方式中,最高有效位元的錯誤可更大程度地影響準確性);特定存取流程,例如,當前存取的人工神經元下游的人工神經元更可能下一步被存取。
所公開的技術還將新的存取流程機制與空間管理相結合,以進一步提高性能和可靠性。例如,可以預測人工神經網路中神經元行為。如果存取一神經元,可再存儲中預先取出神經元的輸出連接與下游連接的神經元的權重,以減少存取延遲。
圖2繪示用於存儲和處理人工智慧應用程式的示例系統200。系統200包括一或多個處理器,表示為處理器202;一或多個暫存記憶模組,表示為記憶體204;一或多個通用輸入/輸出(GPIO)腳位,表示為GPIO 206;一或多個感測器,表示為感測器208;以及一或多個伺服器,表示為伺服器210。系統200還包括存儲裝置220,其耦合到處理器202,存儲裝置220包括存儲控制器222;內部暫存記憶模組223,與存儲控制器222聯接;非揮發性記憶體(NVM)存儲器224,被劃分為若干個分割區,例如,啟動分割區225,人工智慧資料分割區226,以及非人工智慧資料分割區228。在一些實施方式,系統200包括附加存儲裝置,表示為附加存儲裝置230,耦合到處理器202。附加存儲裝置230類似於存儲裝置220。
在一些實施方式中,系統200對應於計算系統,其中不同組件是互連硬體的不同部分。在這種情況下,存儲裝置220且/或230是連接到包括處理器202的單獨主機裝置的獨立存儲模塊。例如,存儲裝置220且/或230可以是外部存儲裝置,如外部快閃記憶碟。在一些實施方式中,系統200對應於包括各種組件的一獨立裝置。在這樣的實施方式中,系統200是積體電路、或託管處理器202和存儲裝置220且/或230的計算機板。這種積體電路的例子包括系統單晶片(SoC)、嵌入式和客製硬體、可程式化邏輯裝置(例如,現場可程式化邏輯閘陣列(FPGA)、以及多功能晶片。在這種情況下,存儲裝置220且/或230可以是嵌入式存儲裝置,例如嵌入式快閃記憶模組。
以下段落描述了用於固態存儲裝置中,人工智慧應用程式的資料存儲和處理的各種技術,如快閃記憶裝置。但是,這些技術也適用暫存或主記憶裝置中,存儲和處理人工智慧資料記憶裝置,其如前所述。
在一些實施方式中,系統200將人工智慧應用程式資料與非人工智慧應用程式資料分開存儲。例如,系統200在存儲裝置220的分割區226中存儲人工智慧資料,並在分割區228中存儲非人工智慧資料。在這樣的實施方式,當處理器202從一或多個連接組件接收輸入(例如,資料輸入)時,處理器202執行不同記憶存取,取決於輸入是用人工智慧應用程式,還是用於非人工智慧應用程式。如果輸入是針對非人工智慧的應用程式,則處理器202存取受非人工智慧數據輸入影響的分割區228的對應記憶位置,並執行存取記憶位置之操作(如讀取或寫入)。處理器202使用操作的結果,來控制一或多個連接的組件,例如,通過GPIO 206向連接的設備發送命令。
另一方面,如果輸入是用於人工智慧應用程式,則處理器202將包含人工智慧命令的人工智慧資料,一起發送給存儲控制器222。在某些實施方式,輸入是人工智慧推理和訓練的資料輸入,是人工智慧應用程式用於深度學習方面的資料。在這樣的實施方式,人工智慧命令是一個推理和訓練命令,它包括多個讀取操作,例如,讀取資料,如從存儲裝置中的存儲裝置中讀取神經元聯接的權重;寫入操作,例如,將資料寫入存儲裝置的記憶位置;以及計算操作,例如乘法和累加(MAC)和雜項激活和匯總函數(Miscellaneous activation and pooling function),以用於人工神經網路的權重和輸入圖像資料。收到這樣的人工智慧命令後,存儲控制器222於人工智慧資料分割區中存取受影響的記憶位置,對存取記憶位置上的資料執行人工智慧命令指定的讀取、寫入且/或計算操作。存儲控制器222將操作結果回送給處理器202。
作為圖2中所繪示的說明性例子,處理器202從感測器208接收輸入(1),例如資料輸入。處理器202判斷資料用於人工智慧應用程式,並對應地識別其用於深度學習的推理和訓練命令,例如,類似於上面描述的那些實施方式,回應於輸入而執行其操作。處理器將對應的人工智慧命令AI_CMD(2)發送到存儲控制器222。在一些實施方式,輸入(1)與人工智慧命令AI_CMD(2)一起發送到存儲控制器222。在其他實施方式,只有人工智慧命令AI_CMD(2)被發送到存儲控制器222。在一些實施方式,例如,存在多個存儲裝置220和230,處理器202判斷存儲裝置受輸入影響,並將人工智慧命令發送到受影響的存儲裝置的存儲控制器。
存儲控制器222根據人工智慧命令AI_CMD(2)決定要執行的讀取、寫入或計算操作(或這些操作的任何之合適組合),並存取(3)受這些操作影響的人工智慧資料分割區226中的一或多個記憶位置。存儲控制器222執行操作,例如,從存儲的記憶位置讀取權重、將更新的權重寫入記憶位置、或執行兩者。存儲控制器222也將執行操作的結果AI_Result output (4),例如更新後的權重,發送到處理器202。處理器202發送AI_CMD(2),以及存儲控制器222執行的人工智慧資料的操作,詳細內容在以下段落中說明。
本發明之系統200的上述操作,與習知技術系統相反。在習知技術系統中,處理器在接收到人工智慧應用程式的資料後,在存儲裝置中存取一或多個受影響的記憶位置,並對於使用存儲在這些存儲位置中的權重進行推理和訓練(例如,讀、寫或計算操作)的操作。傳統的方式中存儲裝置的存儲控制器,例如,從存儲位置加載資料,用於處理器執行操作,或寫入處理器執行的操作的結果。存儲控制器不在本地執行基於處理器命令的推理和訓練操作。另外,在傳統系統中,存儲在記憶位置的資料,不是根據資料是用於人工智慧應用程式或非人工智慧應用程式,而劃分為獨立的分割區。
圖3繪示用於存取人工智慧應用程式的存儲裝置的流程300的示意圖。在一些實施方式中,流程300由系統200執行,例如, 處理器202和存儲控制器222,用於本地化執行人工智慧的操作,例如,在存儲裝置220執行對應於人工神經網路的深度學習的推理和訓練命令中,讀取、寫入或計算操作。因此,以下部分描述了關於處理器202和存儲控制器222的流程300。然而,在其他實施方式中,流程300可通過其他設備或系統執行。
當接收到輸入時,流程300開始於步驟302。例如,在一些實施方式中,處理器202從連接到處理器的設備接收輸入的資料,例如來自感測器208的輸入(1)。
在步驟304,判斷輸入是否是人工智慧資料輸入的資料。例如,處理器202判斷從感測器208接收的輸入(1)是否為人工智慧應用程式的資料輸入。
如果在步驟304判斷輸入不是人工智慧資料輸入,則在步驟306,存取存儲器並執行操作。例如,如果處理器202判斷輸入為非人工智慧資料輸入,即用於非人工智慧應用程式,則處理器202存取存儲裝置220中非人工智慧資料分割區228的記憶位置。例如,使用存儲控制器222從非人工智慧資料分割區228,加載目標存儲分頁或記憶區塊,到耦合到處理器202的暫存記憶體204。處理器202然後執行操作,如讀取或寫入暫存記憶體204中加載的分頁或區塊,以處理存取記憶位置的資料,然後存儲更新在非人工智慧資料分割區228的存儲分頁或區塊。
另一方面,如果在步驟304判斷輸入是人工智慧資料輸入的資料,則在步驟308,將人工智慧命令和資料發送給存儲控制器222。例如,如果處理器202判斷從感測器208接收的輸入是人工智慧資料,則處理器202一同發送人工智慧資料和人工智慧命令(例如,AI_CMD(2)),到存儲控制器222。如前所述,在一些實施方式中,人工智慧命令包括用於人工神經網路深入學習的推理和訓練命令,其聯接權重和神經元激活函數,存儲在存儲裝置220中人工智慧資料分割區226的記憶位置。
在步驟310處,判斷存儲的人工智慧操作是否完成。例如,在從處理器202接收到人工智慧命令時,存儲控制器222在人工智慧資料分割區226存取受影響的記憶位置,以及執行人工智慧命令對應的操作。如前所述,在一些實施方式中,控制器222執行:一或多個讀取操作,例如,從記憶位置中,讀取神經元的聯接權重且/或人工神經網路分層;一或多個寫入操作,例如,更新存儲在記憶位置的聯接權重;以及和一或多個計算操作,例如,乘法和累加以及各種功能,例如用於權重和資料輸入的激活和匯集功能。在一些實施方式中,讀寫操作被分成命令的子集,以對應於不同的存取記憶分頁。
如果判斷存儲的人工智慧操作未完成,則流程300在步驟310處重複。例如,控制器222對人工智慧命令執行多個讀取、寫入或計算操作,直到存儲在人工智慧資料分割區226中的所有受影響的權重被處理。處理器202等待接收控制器222對人工智慧命令執行的操作的結果。在一些實施方式中,處理器202執行其他任務,同時從控制器222獲得人工智慧命令的結果。
如果在步驟310判斷存儲的人工智慧操作完成,則在步驟312提供結果。例如,存儲控制器222,通過存取在人工智慧資料分割區中記憶位置完成人工智慧命令的操作,傳送操作的結果到處理器202。在一些實施方式中,處理器202從控制器222接收通過或失敗的指令,作為人工智慧命令的結果。在一些實施方式中,處理器202從控制器222接收資料(例如更新的人工神經網路的輸出),作為人工智慧命令的結果。在一些實施方式中,回應於從控制器222接收結果,處理器202執行GPIO控制操作。然後,流程300轉至步驟302,例如,等待處理器202從連接到處理器的組件中,接收下一個輸入,組件例如感測器208。
上述方式中,系統200可藉由存儲控制器222,在存儲裝置220執行本地卸載人工智慧操作,其可加速人工智慧推理與訓練。因此,處理器202執行的操作負荷被分擔,從而減少了處理器202的負載。 處理器202和存儲裝置220之間的數據移動也減少,從而節省了內部裝置頻寬。因此,改進了系統200處理人工智慧資料的效能和可靠性。
圖4繪示配置以執行人工智慧操作的記憶存儲裝置的存儲控制器400的一個實施方式。在一些實施方式中,存儲控制器400類似於存儲控制器222。存儲控制器400包括一記憶介面402、一資料路徑調度介面404、一非人工智慧存儲組件405、一非人工智慧閱讀/程式組件406、一人工智慧計算組件408、一人工智慧知覺映射表管理組件410、一人工智慧知覺空間管理組件412、一人工智慧知覺可靠性管理組件414、以及一人工智慧知覺閱讀/程式組件416。
記憶介面402是硬體存儲介面,其使得存儲控制器400能夠與其他設備(例如,處理器420)通信。在一些實施方式中,存儲裝置是非揮發性雙列直插式記憶體模組 (NVDIMM)。在這種情況下,記憶介面402是NVDIMM-N介面、NVDIMM-F介面或NVDIMM-P介面之一。在一些實施方式中,記憶介面402是UFS介面。在一些實施方式中,記憶介面402是eMMC記憶介面。在一些實施方式中,存儲器介面402是PCIe介面。在一些實施方式中,處理器420類似於處理器202。例如,存儲控制器400從處理器420通過記憶介面402接收人工智慧命令和相應的人工智慧資料。
在一些實施方式中,資料路徑調度介面404、非人工智慧存儲組件405、非人工智慧閱讀/程式組件406、人工智慧計算組件408、人工智慧知覺映射表管理組件410、人工智慧知覺空間管理組件412、人工智慧知覺可靠性管理組件414、以及人工智慧知覺閱讀/程式組件416,於一實施方式中可為硬體電路。例如,在存儲控制器400的韌體程式中,或在FPGA中。在一些實施方式中,這些組件被編寫為軟件工作,例如,編碼為存儲在記憶體中的指令,由存儲控制器400通過加載控制器中暫存記憶體的指令來執行。在一些實施方式中,這些組件被實施為硬體電路和軟件工作的組合。
資料路徑調度介面404包括指令,此指令使存儲控制器400能夠判斷是否在人工智慧資料分割區或非人工智慧資料分割區中,存取記憶位置。人工智慧資料分割區,例如,類似於人工智慧資料分割區226。非人工智慧資料分割區,例如,類似於非人工智慧資料分割區228。例如,如前所述,當處理器420處理非人工智慧資料時,控制器400使用資料路徑調度介面404將處理器的請求轉發給非人工智慧存儲組件405。非人工智慧存儲組件405從非人工智慧資料分割區,存取記憶分頁或記憶區塊,以加載至處理器的暫存區。在一些實施方式中,非人工智慧存儲組件405實施基於文件的管理(例如,映射邏輯區塊地址到物理區塊地址)。非人工智慧存儲組件405使用非人工智慧閱讀/程式組件406,執行讀取或寫入在非人工智慧資料分割區中物理記憶分頁且/或記憶區塊。
當處理器420發送人工智慧命令以及附帶之人工智慧資料時,控制器400使用資料路徑調度介面404轉發人工智慧命令和人工智慧資料,到人工智慧計算組件408、人工智慧知覺映射表管理組件410、人工智慧知覺空間管理組件412、以及人工智慧知覺可靠性管理組件414其中一或多個,藉由存取在人工智慧資料分割區中記憶位置,進行人工智慧推理和訓練操作。控制器400使用人工智慧計算組件408、人工智慧知覺映射表管理組件410、人工智慧知覺空間管理組件412、以及人工智慧知覺可靠性管理組件414,在存儲設備上執行人工智慧操作,例如,如流程300的310所述。
人工智慧計算組件408、人工智慧知覺映射表管理組件410、人工智慧知覺空間管理組件412、以及人工智慧知覺可靠性管理組件414,使用針對人工智慧應用程式優化的各種技術,處理人工智慧命令和人工智慧資料。例如,在一些實施方式中,人工智慧知覺映射表管理組件410使用基於人工神經元的映射表,來映射神經元到物理區塊地址或存儲裝置中分頁地址。在一些實施方式中,人工智慧知覺映射表管理組件410使用適合於人工智慧的其他資料結構,例如,基於批量的映射、基於分層的映射、或基於圖像的映射。
人工智慧知覺空間管理組件412和人工智慧知覺可靠性管理組件414使用基於人工智慧的資料管理資料管理,耗損平衡和記錄機制,來提高存取人工智慧應用程式的效能和可靠性,其資料存儲在由存儲控制器400管理的存儲裝置中。這些人工智慧知覺組件使用人工智慧知覺閱讀/程式組件416,讀取或寫入在人工智慧資料分割區的物理記憶分頁且/或記憶區塊。人工智慧計算組件408、人工智慧知覺映射表管理組件410、人工智慧知覺空間管理組件412、以及人工智慧知覺可靠性管理組件414的功能,詳見以下段落說明。
圖5A-5E繪示存儲控制器使用的人工智慧知覺映射表設計500A-500E。在一些實施方式中,人工智慧知覺映射表設計500A-500E由存儲控制器222實現,以管理存儲裝置220中人工智慧資料分割區226的記憶位置。在一些實施方式中,人工智慧知覺映射表管理組件,例如人工智慧知覺映射表管理組件410,在存儲控制器中使用人工智慧知覺映射表設計500A 500E。在一些實現中,映射表設計500A-500E是基於神經元的映射表設計,其映射人工神經元到物理區塊地址且/或物理分頁地址,如前所述。以下部分描述了作為資料的聯接權重的存儲技術。但是,存儲其他類型的人工智慧資料,例如神經元激活功能,也可以使用這些存儲技術。
如圖5A所示,在一些實施方式中,存儲控制器使用分層映射表設計500A,其利用了人工神經網路的資料位置特徵。藉由分層映射表設計500A,存儲控制器在相同記憶分頁中存儲與相同神經元相關的權重。例如,在一些實施方式中,人工神經網路的神經元0、神經元1、神經元2、以及神經元N的邏輯位址,分別是502a,502b,502c和502n。存儲控制器在快閃記憶體的一分頁中,為每個神經元存儲資料,例如權重。例如,神經元0,神經元1,神經元2和神經元N的權重分別存儲在記憶分頁504b,504a,504n和504c中。
如圖1B中的神經元N6的實施方式所描述的,每個神經元的權重是神經元輸入和輸出連接的權重。圖5A的實施方式中,在使用分層映射表設計500A時,存儲控制器判斷與神經元相關聯的神經元,並存儲權重在一個記憶分頁,此記憶分頁用於存儲與神經元對應的權重。例如,神經元0的輸入和輸出連接的權重,存儲在分頁504b中,其中記憶物理位址在W[0][0]和W[0][N]之間。在一些實施方式中,每個記憶分頁,例如,記憶分頁504b,大小為4千位元組(KB)。特定神經元的每個權重,例如權重0、權重1、以及權重2,以4位元組(B)單位存儲在記憶分頁中。在其他實施方式中,可以使用不同大小的記憶分頁和權重。
如前所述,在一些實施方式中,記憶裝置中的物理存儲器是固態存儲器,例如快閃記憶體。在一些實施方式中,存儲神經元權重於不同記憶分頁中,此些不同記憶分頁位於快閃記憶體的相同通道和平面。例如,在一些實施方式,在分層映射表設計500A中,記憶分頁504a、504b、504c、以及504n位於物理存儲器的相同通道和平面。在這種情況下,通道是快閃記憶體的一同步存取單元,快閃記憶體可有多個通道。每個通道包括多個快閃晶片,其中一個平面是快閃晶片的同步存取單元。每個快閃記憶體晶片可包括多個平面。
然而,在一些實施方式中,存儲控制器使用圖5B所示的修改的分層映射表設計500B。在某些情況下,多個記憶分頁用於收集和存儲神經元的權重。例如,當神經元具有大量相關的權重時,其整體規模超過了記憶分頁的存儲容量。依據映射表設計500B,存儲控制器以分佈式方式選擇這些多分頁,例如,將記憶分頁分散到不同的通道,或者不同平面,或兩者兼而有之。例如,如圖5B所示,在一些實施方式中,將與神經元0相關聯的大量權重,存儲在四個記憶分頁中506a、506b、506c和506d。記憶分頁506a將權重存儲在記憶位置,其位址在W[0][0]和W[0][N]之間。記憶分頁506b將權重存儲在記憶位置,其位址在W[0][N + 1]和W[0][2N]之間。記憶分頁506c將權重存儲在記憶位置,其位址在W[0][2N + 1]和W[0][3N]之間。記憶分頁506d將權重存儲在記憶位置,其位址在W[0][3N+1]和W[0][4N]之間。
存儲控制器在不同的通道和不同的平面上以分佈式方式選擇記憶分頁。例如,記憶分頁506a位於通道0和平面0。記憶分頁506b位於通道0和平面1、記憶分頁506c位於通道1和平面0、記憶分頁506d位於通道1和平面1。以這種分佈的方式存儲神經元的權重,可加速資料的存取速度,例如,存儲控制器可以同時讀取或寫入不同通道且/或平面的記憶分頁。
在一些實施方式中,存儲控制器依據映射表設計500C或500D,分別如圖5C和5D所示,其中權重根據權重、神經元、或兩者的重要性,存儲在不同類型的記憶位置中。映射表設計500C說明了單分頁設計的一個例子。依據映射表設計500C,存儲控制器收集並存儲神經元的權重在一個記憶分頁。例如,記憶分頁508,包括不同類型的記憶單元,例如單層單元、多層單元、三層單元、以及四層單元。相同神經元的權重可以具有不同的重要性,其根據權重的重要性,權重存儲在不同類型的細胞中。例如,在一些實施方式中,重要權重存儲在單層單元中,而較低重要的權重存儲在多層單元、三層單元、四層單元、或者這些單元的任何組合。在一些實施方式中,重要權重存儲在多層單元中,而不太重要的權重存儲在三層單元且/或四層單元中。在一些實施方式中,重要權重存儲在三層單元中,而不太重要的權重存儲在四層單元中。由於單層單元,多層單元,三層單元和四層單元,為按穩定性而降序排列。相較於不太重要的權重,映射表設計500C嘗試確保最重要的權重的存儲,具有更高的可靠性。
此狀況中,權重的重要性基於權重在判斷神經元所依據的激活函數的結果中的影響。例如,神經元有四個權重:w0 值為0.5,w1 值為0.4,w3 值為0.3,w4 值為0.2。因此,w0 比其他權重具有更大的影響來決定神經元的激活函數的結果,而w4 的影響最小。因此,權重w0 在神經元的權重中具有最高的重要性,而w4 具有最低的重要性。
在一些實施方式中,存儲控制器藉由與已知閾值進行比較來判斷重要性。如果權重的值大於此閾值,則權重被認為是重要的,而如果該值小於閾值則權重被認為是不重要的。
在一些實施方式中,使用多個閾值,例如,閾值1,閾值2和閾值3,其中閾值3具有高於閾值2的值,而閾值2又具有高於閾值1的值。在這種情況下,多個閾值重要性是可能的。例如,如果權重的值大於閾值3,則權重被認為具有最高重要性級別的重要性級別4。如果權重的值在閾值3和閾值2之間,則權重被認為具有重要性級別3,其小於重要性級別4。如果權重的值在閾值2和閾值1之間,則權重被認為具有重要性級別2,其小於重要性級別3。如果權重的值小於閾值1,則權重被認為具有重要性級別1,其小於重要性級別2並且是最低重要性級別。具有重要性級別4的權重存儲在單層單元;具有重要性級別3的權重存儲在多層單元;具有重要性級別2的權重存儲在三層單元;以及具有重要性級別1的權重存儲在四層單元中。根據本發明,閾值級別和重要性級別的各種排列是可能的,例如,具有兩個閾值或四個閾值,或具有三個重要性級別或五個重要性級別,等等。
在一些實施方式中,權重以數值的升序或降序排列。在這種情況下,權重根據其數值,存儲在不同類型的單元中。例如,具有最高值的權重存儲在單層單元中,而具有最低值的權重存儲在四層單元中。
圖5C繪示具有四個權重的神經元0的實施方式,其存儲在記憶分頁508,在記憶分頁508的記憶單元508a、508b、508c、以及508d中。記憶單元508a、508b、508c以及508d分別為單層單元、多層單元、三層單元和四層單元。依據映射表設計500C,單層單元記憶單元508a存儲具有最高重要性級別的神經元0的權重(例如,前一實施方式中的權重w0 );多層單元記憶單元508b存儲具有中等重要性級別的權重,例如,小於最高重要性級別(例如,前一實施方式中的權重w1 );三層單元記憶單元508c存儲中等重要性級別的權重,例如,小於中高重要性級別(例如,前一實施方式中的權重w2 );和四層單元記憶單元508d存儲具有最低重要性級別的權重,例如,小於中高重要性級別(例如,前一實施方式中的權重w4 )。
圖5D中映射表設計500D繪示跨分頁設計的實施方式。在一些實施方式中,依據映射表設計500D,存儲控制器在具有不同類型記憶單元的不同記憶分頁中收集和存儲不同重要性的權重。例如,最重要權重的神經元,其最重要權重存儲在包含多個單層單元的記憶分頁中,而重要性較低的神經元的權重,存儲在包括多個多層單元的記憶分頁。
進一步地或可選擇地,單個權重的不同部分可以存儲在不同類型的記憶單元中,這些記憶單元可以位於相同的記憶分頁中,或者分佈在不同的記憶分頁上。例如,在一些實施方式中,權重的最高有效位元(例如,4位元組權重值的較高16位元)比權重的最低有效位元更重要(例如,4位元組權重值的較低16位)。在這種情況下,權重的最高有效位元存儲在單層單元中,而權重的最低有效位元存儲在多層單元中,三層單元或四層單元。圖5D繪示具有最高有效位元510a和最低有效位元510b的權重值的神經元的實施方式。根據映射表設計500D,最高有效位元510a存儲在記憶分頁512a的單層單元,而最低有效位元510b存儲在記憶分頁512b的多層單元。在一些實施方式中,最高有效位元和最低有效位元分別存儲在相同記憶分頁的單層單元和多層單元(或者分別存儲在多層單元中和三層單元;或單層單元和三層單元等)。
在一些實施方式中,存儲控制器依據映射表設計500E,如圖5E所示,其實現基於權重的獨立磁盤容錯陣列(RAID)架構。依據映射表設計500E,存儲控制器複製跨越多個記憶分頁中神經元的重要權重,提高權重存儲的可靠性。例如,如圖5E所示,在一些實施方式中,神經元0具有兩個重要的權重,其存儲在具有物理位址W[0][0]和W[0][1]的記憶位置中。具有物理位址W[0][0]的記憶位置複製在兩個不同的記憶分頁514a和514b,而記憶位置的物理位址為W[0][1]複製在兩個不同的記憶分頁516a和516b。
在一些實施方式中,記憶分頁514a、514b、516a、以及516b都是不同的。在一些實施方式中,記憶分頁514a可以與記憶分頁516a或516b之一相同,或者記憶分頁514b可以與記憶分頁516a或516b之一相同,前提是每個重要權重在不同的記憶分頁複製以提供備份。
在一些實施方式中,存儲控制器使用上述技術判斷使用複製的重要性級別。在一些實施方式中,可以使用不同的獨立磁碟容錯陣列(RAID)架構來複製具有不同重要性級別的權重。例如,在一些實施方式中,重要性級別為4的權重在五個不同的記憶分頁上複製;重要性級別3的權重在四個不同的記憶分頁上複製;以及在三個不同的記憶分頁上複製具有重要性級別2的權重。
上面已經描述了關於存儲神經元權重的映射表設計500C,500D和500E。映射表設計500C、500D或500E,可以用類似的方式,按不同的重要性級別,排序不同的神經元或不同的人工智慧圖像,並存儲相關的資訊。(例如,不同類型細胞中的重要神經元和不重要神經元中,相關的權重)。
圖6繪示由存儲控制器使用的人工智慧知覺空間管理技術600的實施方式。在一些實施方式中,人工智慧知覺空間管理技術600,藉由存儲控制器222以管理存儲裝置220的人工智慧資料分割區226中的記憶位置,以實現此技術。在一些實施方式,存儲控制器中,人工智慧知覺空間管理組件(例如,人工智慧知覺空間管理組件412),使用人工智慧知覺空間管理技術600。以下部分描述了關於權重資料聯接的人工智能知識空間管理技術600。此外,存儲其他類型的人工智慧資料,例如神經元激活函數,也可以使用此空間管理技術。
在一些實施方式中,存儲控制器在執行人工神經網路的訓練模式操作時,使用人工智慧知覺空間管理技術600。在這種情況下,當人工神經網路處於訓練模式時,人工神經網路的聯接權重會經常更新,這可能引入可靠性和性能問題。為了解決這些問題,存儲控制器,使用人工智慧知覺空間管理技術600,將頻繁訪問的存取權重值,重新分配給物理快閃記憶體的記錄區域,而不是將頻繁變化的權重更新值寫入快閃記憶體的長期存儲區域。由於高頻率反映於權重值的每次變化中,長期存儲區不會被存取,因此長期存儲在快閃記憶體中的資料不會受到干擾,並且沒有垃圾收集超載的困擾。
如圖6所示,在一些實施方式中,神經元0是一個「熱」神經元,即一個權重經常更新的神經元(例如,在訓練人工神經網路時)。因此,根據人工智慧知覺空間管理技術600,存儲控制器在物理快閃記憶體的記錄區域602中,存儲與熱神經元0對應的權重的連續數值。例如,存儲控制器最初從長期存儲區域612中的記憶位置,存取神經元0的權重。在記錄區域602中,將權重的更新值存儲在記憶位置604a中,以追溯訓練操作。權重的後續更新值,連續存儲在記憶位置604b和604c中。當存儲控制器判斷權重不再以高頻率更新時,例如,當更新發生的頻率低於已知閾值速率時,存儲控制器寫入最近的權重值在長期存儲區域612中的對應記憶位置。
與神經元0神經元相反,神經元1是「冷」神經元,例如,神經元不經常更新,因此其權重不具有高頻率存取率。因此,每次更新與神經元1聯接的權重的值(例如,以低於已知閾值速率的頻率更新)時,存儲控制器將更新後的值寫入長期存儲區612中相應的記憶位置。例如,每次更新值後,神經元1的權重值被寫入記憶位置614a、614b、以及614c。
圖7繪示用於人工智慧資料的容錯讀取/寫入操作的流程700的實施方式。在一些實施方式中,流程700由存儲控制器222執行,以存取存儲裝置的人工智慧資料分割區226中的存儲位置。以下部分將關於聯接權重的流程700描述為資料。但是,存儲其他類型的人工智慧資料,例如神經元激活功能,也可以使用流程700。
在步驟702,識別要存取的權重。例如,存儲控制器根據來自處理器202的人工智慧命令,判斷要存取的權重。
在步驟704,判斷此權重是否重要。例如,存儲控制器,使用人工智慧知覺閱讀/程式組件416,判斷神經元的權重的重要級別,其中神經元從人工智慧資料分割區226的記憶位置中取得。存儲控制器以前面描述的方式判斷重量的重要性級別,例如,根據映射表設計500C或500D。
如果此權重被判斷為重要的,則在步驟706,對所有資料執行讀取或寫入。例如,如果權重的重要性級別大於某個重要性閾值(例如,權重是前面描述的重要級別4),則對所有存儲的權重位元,藉由人工智慧知覺閱讀/程式組件(例如,人工智慧知覺閱讀/程式組件416),存儲控制器執行讀取或寫入操作。
另一方面,如果判斷此權重不重要,在步驟708,讀取一部分之權重。例如,如果權重的重要性級別小於某個重要性閾值(例如,權重是前面描述的重要級別2或1),存儲控制器執行讀取或寫操作,例如根據人工智慧知覺閱讀/程式組件416,以用於權重的一些存儲位元,例如,最高有效位元與最低有效位元其中之一,但不是權重的所有位元。
在步驟710,判斷是否需要對權重的重要性級別進行完全糾錯。例如,存儲控制器中的人工智慧知覺閱讀/程式組件416可配置,在讀取/寫入操作後執行完整糾錯操作。完整糾錯操作,使用糾錯碼(ECC)於具有最高重要性級別的權重,同時對具有其他重要性級別的權重執行部分糾錯。因此,如果權重具有重要性級別4,則存儲控制器決定要執行完整糾錯操作。但是,如果權重的重要性為3級或更低,則存儲控制器決定要執行部分糾錯操作。
如果判斷需要完全糾錯,則在步驟712執行完全糾錯。例如,如果存儲控制器判斷權重具有最高重要性級別,從而確保其值的高可靠性,則存儲控制器藉由例如人工智慧知覺閱讀/程式組件416,對權重執行完整的糾錯碼(ECC)檢查。
另一方面,如果判斷不需要完全糾錯,在步驟714,執行部分糾錯。例如,如果存儲控制器判斷權重具有較低的重要性級別,不需要確保其權重值的高可靠性,則存儲控制器藉由例如人工智慧知覺閱讀/程式組件416,執行部分糾錯碼(ECC)檢查。
以上述方式,存儲控制器使用流程700存取權重值,並根據權重的重要性確保其可靠性。對於具有較低重要性級別的權重,可以犧牲準確性(例如,通過執行部分讀取或部分糾錯碼(ECC),或兩者兼備)來提高存取速度,從而改進整體性能。人工神經網路可以容忍讀取重要性較低的權重值的錯誤;因此,犧牲重要性較低的權重的準確性,不會功能上影響人工神經網路的整體準確性。
圖8繪示存儲控制器使用的人工智慧知覺可靠性管理技術800的實施方式。在一些實施方式中,通過存儲控制器222實施人工智慧知覺可靠性管理技術800,以管理存儲裝置220的人工智慧資料分割區中記憶位置。在一些實施方式中,人工智慧知覺可靠性管理組件,例如人工智慧知覺可靠性管理組件414、在存儲控制器中使用的人工智慧知覺可靠性管理技術800。以下部分描述了關於作為資料的聯接權重的人工智慧知覺可靠性管理技術800。但是,存儲其他類型的人工智慧資料,例如神經元激活功能,也可以使用可靠性管理技術800。
在一些實施方式中,根據人工智慧知覺可靠性管理技術800,存儲控制器在具有更高可靠性的記憶分頁中,存儲對應於神經元的權重值的最高有效位元部分。例如,使用具有更多糾錯碼(ECC)位元的強糾錯碼(ECC)。存儲控制器將權重值的最低有效位元存儲在具有較低可靠性的記憶分頁中,例如,使用較低糾錯碼(ECC)位元的較弱糾錯碼(ECC)。例如,如前所述,在權重的最高有效位元比權重的最低有效位元的重要性更高的實施中,可採用前述方式。
作為說明性實施方式,存儲控制器存儲最高有效位元(例如,權重的4位元組值中較高16位元,例如W[0].MSB,W [1].MSB... W[n].MSB),在記憶分頁的記憶位置802a,其使用強大的糾錯碼(ECC)。對應於最高有效位元的強大糾錯碼(ECC),存儲在記憶分頁的記憶位置802b中。存儲控制器存儲最低有效位元(例如,權重的4位元組值中較低16位,如W[0].LSB、W[1].LSB... W[n].LSB),在使用較弱的糾錯碼(ECC)的第二記憶分頁的記憶位置804a(與記憶位置802a和802b的分頁,所使用的糾錯碼(ECC)相比較)。與存儲在804b中的糾錯碼(ECC)位元數相比,更多數量的糾錯碼(ECC)位元數存儲在802b中。因此,與最低有效位元相比,最高有效位元提供更高的可靠性。如此,收集並存儲於相同分頁中神經元的所有權重的最高有效位元具有較強的糾錯碼(ECC),而收集並存儲於相同分頁中神經元的所有權重的最低有效位元具有較弱的糾錯碼(ECC)。
在一些實施方式中,權重的最低有效位元比權重的最高有效位元更重要。在這種情況下,根據人工智慧知覺可靠性管理技術800,存儲控制器存儲對應於神經元的權重值的最低有效位元部分,具有更高可靠性的記憶分頁。例如,使用具有更多糾錯碼(ECC)位元的強糾錯碼(ECC)。存儲控制器將權重值的最高有效位元部分存儲在具有較低可靠性的記憶分頁中,例如,使用具有較少糾錯碼(ECC)位元的較弱的糾錯碼(ECC)。
人工智慧知覺可靠性管理組件414使用附加技術來提供存儲在人工智慧資料分割區226中的人工智慧資料的可靠性。例如,在一些實施方式中,人工智慧知覺可靠性管理組件414使用人工智慧知覺程式驗證技術。人工智慧知覺程式驗證技術,與權重的最低有效位元相比,權重的最高有效位元s被寫入更多的迭代次數。通過使用更多的程式迭代,最高有效位元獲得更窄的記憶單元閾值電壓分佈(distribution of the memory cell threshold voltage)(例如,0.2伏特寬);而通過使用較少的程式迭代,最低有效位元得到更寬的記憶單元閾值電壓分佈(例如,0.6伏特寬)。
在一些實施方式中,人工智慧知覺可靠性管理組件414使用人工智慧知覺耗損平衡技術。使用人工智慧知覺耗損平衡技術,將一個權重的最高有效位元寫入一記憶區塊的記憶分頁。與寫入權重的最低有效位元的記憶區塊相比,較記憶區塊具有一較低程式/擦除(P/E)週期數。例如,權重的最高有效位元以100 P/E週期寫入記憶區塊,而權重的最低有效位元s寫入具有1000 P/E週期的不同內記憶區塊。由於記憶區塊的穩定性隨著P/E週期數的增加而減小,上述技術確保了權重的最高有效位元(在某些實施方式中更為重要,如前所述)被寫入一個可以提供更高可靠性的記憶區塊,例如,更能承受耗損。
圖9A和9B分別繪示人工智慧命令格式900A和900B的實施方式。在一些實施方式中,處理器202使用命令格式900A和900B來發送人工智慧命令,例如AI_CMD(2),到存儲控制器222。
圖9A中的命令格式900A,用於發送單個神經網路(Neural network,NN)存取命令,或多個神經網路存取命令。神經網路存取命令是存取單個神經元和相應的權重,而多個神經網路存取命令用於存取多個神經元和相應的權重。多個神經元和相應的權重可以存儲在存儲器中的分佈位置。如圖所示,命令格式900A包括若干字段,例如操作碼902a,分層描述902b,人工神經網路描述902c,重要性描述902d和資料位址描述902e。
操作碼902a指定人工智慧命令是讀命令還是寫命令。在一些實施方式中,操作碼902a字段是1位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。
分層描述902b在單個神經網路存取命令和多個神經網路存取命令之間有所不同。對於單個神經網路存取命令,分層描述902b提供了一個分層號碼,可用以存取。例如,考慮到工神經網路100,分層描述902b可以指定分層L0,或分層L1,或分層L2。對於多個神經網路存取命令,分層描述902b提供了要存取的分層的範圍。在一些實施方式中,分層描述902b字段是16位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。
人工神經網路描述902c在單個神經網路存取命令和多個神經網路存取命令之間不同。對於單個神經網路存取命令,人工神經網路描述902c識別要存取的人工神經網路號碼。例如,記憶裝置220中的人工智慧資料分割區226可以存儲多個人工神經網路的資料,包括例如人工神經網100。人工神經網路描述902c可以提供人工神經網路的識別物件,該識別物件是人工智慧命令的目標,例如,人工神經網路描述902c可以為人工神經網路100提供識別物件。對於多個神經網路存取命令,人工神經網路描述902c提供了要存取的人工神經網路的範圍。在一些實施方式中,人工神經網路描述902c字段是16位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。
重要性描述902d指定存儲資料的哪個位元是重要位元。例如,如前所述,在一些實施方式中,最高有效位元是重要的,並且該資訊可以由重要性描述902d指定。但是,在某些實施方式中,最低有效位元比最高有效位元更重要。在這種情況下,重要性描述902d指定最低有效位元是重要的位元。存儲控制器採用人工智慧知覺的存儲管理的各種技術,依賴於權重的重要性,例如映射表設計500C-500E、流程700、或者人工智慧知覺可靠性管理技術800,其使用重要性描述902d。前面的描述是關於最高有效位元是重要的位元。這些技術也適用於最低有效位元是重要位的實施方式。在一些實施方式中,重要性描述902d字段是1位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。
資料位址描述902e提供指向記憶位置位址的指標,例如,人工智慧資料分割區226的存儲人工智能資料的記憶位置,用於執行人工智慧命令。在一些實施方式中,取決於應用,每個指標是4位元寬,並且存在M個這樣的指標用於M個目標記憶位置(M是大於0的整數)。在這種情況下,資料位址描述902e字段是4*M位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。例如,通常,每個指標是L(L是大於0的整數)位元寬。用M個指標,存儲M個目標記憶位置,資料位址描述902e字段為L*M位元寬。
在一些實施方式中,使用圖9B中命令格式900B來發送一批量神經網路存取命令,以用於一些應用程式。如圖所示,命令格式900B包括字段操作碼912a,批量描述912b,重要性描述912c和資料位址描述912d。在這種情況下,批量神經網路存取命令用於存取批量資料,例如,存儲在記憶體中連續的位置的多個神經元和對應的權重。
操作碼912a指定批量神經網路存取人工智慧命令是否為讀命令或寫命令。在一些實施方式中,操作碼912a字段是1位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。
批量描述912b提供了要存取的批量號碼。批量號碼是指要存取的批量資料。如上所述,批量資料可以是多個連續神經元和對應權重的人工神經網路資料。在一些實施方式中,批量描述912b字段是16位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。
重要性描述912c以類似於重要性描述902d字段所描述的方式,指定所存儲資料的哪個位元是重要位元。在一些實施方式中,重要性描述912c字段是1位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。
資料位址描述912d提供指向記憶位置的位址的指標,例如,存取人工智慧資料分割區266中存儲人工智慧資料的記憶位置,以用於執行人工智慧命令。在一些實施方式中,根據應用所需,每個指標是4位元長,並且存在M個這樣的指標以用於M個目標記憶位置(M是大於0的整數)。在這種情況下,資料位址描述912d字段為4*M位元寬。然而,在不同的實施方式中,其他字段寬度也是可能的。例如,對於某些應用,每個指標的長度為L位元寬(L是大於0的整數)。具有用於M個目標記憶位置的M個指標,資料位址描述912d字段為L*M位元寬。
所公開的和其他實施方式可以實施為一或多個計算機程式產品,例如,在計算機可讀媒介上編碼的計算機程式指令的一或多個模組,用於由其執行或控制資料處理設備的操作。計算機可讀媒介可以是機器可讀記憶裝置、機器可讀存儲基板、記憶裝置、或者其中的一或多個的組合。術語「資料處理設備」包括所有設備、設備和處理資料的機器,包括例如可程式處理器,計算機、多個處理器或計算機。除了硬體之外,設備還可以包括為所討論的為計算機程式創建執行環境的程式碼,例如,構成處理器固體的程式碼、協定堆疊、資料基礎管理系統、操作系統、或者其中一或多個的組合。
系統可以包含用於處理數據的所有設備、裝置和處理資料機器,包括例如可程式處理器、計算機、多個處理器或計算機。除了硬件之外,系統還可以包括為所討論的為計算機程式創建執行環境的程式碼,例如,構成處理器韌體的程式碼、協定堆疊、資料基礎管理系統、操作系統、或者其中一或多個的組合。
計算機程式(也稱為程式、軟件、軟件應用程式、腳本或程式碼)可以用任何形式的程式語言編寫,包括編譯或解釋的語言,並且它可以以任何形式設置,包括如獨立程式或作為模組、組件、子程式或適用於計算環境的其他單元。計算機程式不一定對應於文件系統中的文件。程式可以存儲在保存其他程式或數據的文件的一部分中(例如,存儲在標記語言檔案中的一或多個腳本)。計算機程式可存儲在專用於所討論程式的單個文件中,或者存儲在多個協調文件中(例如,存儲一或多個模組,子程式或部分的程式碼)。計算機程式可以部署在一台計算機上或位於一個場所上、或分佈在多個場所上並通過通信網路互連。
本文中描述的過程和邏輯流程,可藉由一或多個可程式處理器執行其中一或多個計算機程式,以執行本文描述的功能。過程、邏輯流程、以及設備也可實施為專用邏輯電路,例如FPGA或特殊應用積體電路(ASIC)。
舉例來說,適合於執行計算機程式的處理器包括通用和專用微處理器,以及任何類型的數位計算機的任何一或多個處理器。通常,處理器將從唯讀記憶體、隨機存取記憶體、或兩者,接收指令和資料。計算機的基本要素可以包括用於執行指令的處理器和一或多個記憶裝置,以用於存儲指令和資料。通常,計算機還可以包括或可操作地耦合至接收資料、或將資料傳輸到一或多個大容量存儲裝置以用於存儲資料,例如,磁碟,磁光碟或光碟。但是,計算機不需要這樣的設備。計算機可讀媒介適用於存儲計算機程式指令和資料,其可以包括所有形式的非揮發性記憶體、媒介和記憶裝置,例如,EPROM,EEPROM和快閃記憶裝置;磁碟,例如內部硬碟或可移動磁碟;磁光碟;以及CD ROM和DVD-ROM光碟。處理器和記憶體可附屬或併入於專用邏輯電路中。
雖然本文檔可描述許多細節,但這些細節不應被解釋為對要求保護範圍或要求保護的發明範圍的限制,而是作為特定實施方式特有的特徵的描述性說明。在單獨的實施方式的上下文中在本文檔中描述的某些特徵也可以與其他實施方式進行組合。相反,在單個實施方式的上下文中描述的各種特徵也可以單獨地或以任何合適的局部組合在其他多個實施方式中。此外,儘管最初揭露中,上面的特徵以描述為某些組合,但是當需要時可以從組合中移除來所要求保護的組合中一或多個特徵,並且所要求保護的組合可針對其中子組合、或子組合的修正。同樣地,在圖式中以特定順序描繪了操作順序,但是這不應該被理解為要求為特定順序或必須按順序執行操作,或者執行所有繪示的操作,以產生期望的結果。
本發明說明內容僅公開了幾個實施方式,使用者可基於所公開的內容對所描述的實施方式、以及其他實施方式進行改變、修正和加強。
綜上所述,雖然本發明已以實施方式揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧人工神經網路200‧‧‧系統202‧‧‧處理器204‧‧‧記憶體206‧‧‧腳位208‧‧‧感測器210‧‧‧伺服器220、230‧‧‧存儲裝置222、400‧‧‧存儲控制器224‧‧‧非揮發性記憶體存儲器223‧‧‧內部暫存記憶模組225‧‧‧分割區226‧‧‧人工智慧資料分割區228‧‧‧非人工智慧資料分割區300‧‧‧流程302、304、306、308、310、312‧‧‧步驟400‧‧‧存儲控制器402‧‧‧記憶介面404‧‧‧資料路徑調度介面405‧‧‧非人工智慧存儲組件406‧‧‧非人工智慧閱讀/程式組件408‧‧‧人工智慧計算組件410‧‧‧人工智慧知覺映射表管理組件412‧‧‧人工智慧知覺空間管理組件414‧‧‧人工智慧知覺可靠性管理組件416‧‧‧人工智慧知覺閱讀/程式組件500A-500E‧‧‧人工智慧知覺映射表設計502a、502b、502c、502n‧‧‧邏輯位址504a、504b、504c、504n‧‧‧記憶分頁506a、506b、506c、506d‧‧‧記憶分頁508‧‧‧記憶分頁508a、508b、508c、508d‧‧‧記憶單元510a‧‧‧最高有效位元510b‧‧‧最低有效位元512a、512b、514a、514b、516a、516b‧‧‧記憶分頁600‧‧‧人工智慧知覺空間管理技術602‧‧‧記錄區域604a、604b、604c‧‧‧記憶位置612‧‧‧長期存儲區域614a、614b、614c‧‧‧記憶位置700‧‧‧流程702、704、706、708、710、712、714‧‧‧步驟800‧‧‧人工智慧知覺可靠性管理技術802a、802b、804a、804b‧‧‧記憶位置900A、900B‧‧‧人工智慧命令格式902a‧‧‧操作碼902b‧‧‧分層描述902c‧‧‧人工神經網路描述902d‧‧‧重要性描述902e‧‧‧資料位址描述912a‧‧‧操作碼912b‧‧‧批量描述912c‧‧‧重要性描述912d‧‧‧資料位址描述AI_CMD‧‧‧人工智慧命令AI_Result output‧‧‧操作的結果L0、L1、L2‧‧‧分層N0~N8‧‧‧人工神經元x0 x1 x2 ‧‧‧輸入信號W0~Wi‧‧‧權重
圖1A和1B分別繪示了人工神經網路的一實施例和人工神經網路的神經元的分解示意圖。 圖2繪示一實施例中,用於存儲和處理人工智慧應用的資料的系統示意圖。 圖3繪示一實施例中,用於人工智慧應用程式的存儲裝置的存取流程示意圖。 圖4繪示一實施例中,配置於執行人工智慧操作的記憶存儲裝置中存儲控制器的示意圖。 圖5A-5E繪示多個實施例中,存儲控制器依據的人工智慧知覺映射表的示意圖。 圖6繪示一實施例中,存儲控制器依據的人工智慧知覺空間管理技術的示意圖。 圖7繪示一實施例中,用於人工智慧的容錯讀取/寫入操作的過程示意圖。 圖8繪示一實施例中,存儲控制器依據的人工智慧知覺可靠性管理技術的示意圖。 圖9A和9B繪示兩個實施例中,人工智慧命令格式的示意圖。 各附圖中相同的附圖標記和名稱表示相同的元件
200‧‧‧系統
202‧‧‧處理器
204‧‧‧記憶體
206‧‧‧腳位
208‧‧‧感測器
210‧‧‧伺服器
220、230‧‧‧存儲裝置
222‧‧‧存儲控制器
224‧‧‧非揮發性記憶體存儲器
223‧‧‧內部暫存記憶模組
225‧‧‧分割區
226‧‧‧人工智慧資料分割區
228‧‧‧非人工智慧資料分割區
AI_CMD‧‧‧人工智慧命令
AI_Result output‧‧‧操作的結果

Claims (31)

  1. 一種設備,包括: 一或多個處理器;以及 多個非暫態媒介,用以存儲多個指令,當該些指令由該一或多個處理器執行時,該一或多個處理器配置為執行下列操作: 從一輸入裝置接收用以處理的輸入資料;以及 當判斷該輸入資料為對應人工智慧應用程式,執行下列步驟: 產生人工智慧命令,用於對一記憶裝置執行一或多個讀取或寫入操作,該記憶裝置配置為存儲該一或多個多處理器所處理之多個應用程式,該些應用程式包含一人工智慧應用程式,該人工智慧命令以操作代碼為特徵,該人工智慧命令包括對應該輸入資料的該人工智慧應用程式中一或多個組件的資訊; 將該人工智慧命令和該輸入資料發送到一存儲控制器,以管理該記憶裝置,其中該存儲控制器使用該操作代碼以及該資訊,以執行該記憶裝置的該一或多個讀取或寫入操作,該資訊包含該人工智慧命令;以及 從該存儲控制器接收在該記憶裝置上執行的該一或多個讀取或寫入操作的結果。
  2. 根據申請專利範圍第1項所述之設備,其中該些操作更包括: 當判斷該輸入資料對應於該些應用程式中一非人工智慧應用程式,由該一或多個處理器存取對應於該記憶裝置中的該輸入資料的一或多個記憶位置;以及 在該存取一或多個記憶位置上執行一或多個讀取或寫入操作。
  3. 根據申請專利範圍第1項所述之設備,其中: 該人工智慧應用程式的該一或多個組件,包含在一人工神經網路中一或多個神經元; 該輸入資料包括與該一或多個神經元中的每一個神經元的輸入連接或輸出連接中的一或多個對應的權重;以及 該操作代碼對應於(i)該人工神經網路中一特定神經元的一單獨讀取或寫入、(ii)在該人工神經網路中該些神經元的多個單獨讀取或寫入、或(iii)在該人工神經網路中一批量神經元的一批量讀取或寫入。
  4. 根據申請專利範圍第3項所述之設備,進一步包括該存儲控制器,其中該存儲控制器配置為執行的操作包括: 從該一或多個處理器接收到該人工智慧命令後,從該人工智慧命令中包含的資訊中獲取對應該一或多個神經元中的一第一神經元的該一或多個輸入連接或輸出連接的一權重集合; 將聯接該權重集合與該第一神經元;以及 回應於該權重集合與該第一神經元的聯接,將聯接該第一神經元的該權重集合,存儲於該記憶裝置的一特定分頁或區塊,其中該記憶裝置的該特定分頁,配置為存儲聯接該第一神經元的該權重集合。
  5. 根據申請專利範圍第3項所述之設備,進一步包括該存儲控制器,其中該存儲控制器配置為執行的操作包括: 從該一或多個處理器接收到該人工智慧命令後,從該人工智慧命令包含的該資訊中獲取一權重集合,該權重集合對應該一或多個神經元中的一第一神經元的一或多個輸入連接或輸出連接; 將聯接該權重集合與該第一神經元;以及 回應於該權重集合與該第一神經元的聯接: 將該權重集合劃分為一第一子集和一第二子集; 將該第一子集存儲在該記憶裝置的一第一通道的一相同分頁或區塊;以及 將該第二子集存儲在該記憶裝置的一第二通道的一相同分頁或區塊。
  6. 根據申請專利範圍第3項所述之設備,進一步包括該存儲控制器,其中該存儲控制器配置為執行的操作包括: 從該一或多個處理器接收到該人工智慧命令後,從該人工智慧命令包含的該資訊中獲取一權重集合,該權重集合對應該一或多個神經元中的一第一神經元的一或多個輸入連接或輸出連接; 判斷該權重集合的一第一權重具有一第一重要值、以及該權重集合的一第二權重具有一第二重要值,其中該第二重要值小於該第一重要值;以及 回應於該判斷,執行以下步驟: 將該第一權重存儲在該記憶裝置的一第一分頁中一單層單元;以及 將該第二權重存儲在該記憶裝置的一第二分頁中一多層單元、一三層單元、或一四層單元。
  7. 根據申請專利範圍第3項所述之設備,進一步包括該存儲控制器,其中該存儲控制器配置為執行的操作包括: 從該一或多個處理器收到該人工智慧命令後,從該人工智慧命令中包含的該資訊中,獲取該一或多個神經元中的一第一神經元的一或多個輸入連接或輸出連接的一權重集合; 判斷該權重集合的一第一權重具有一第一重要值、以及該權重集合的一第二權重具有一第二重要值,其中該第二重要值小於該第一重要值;以及 回應於該判斷,執行以下步驟: 將該第一權重存儲在該記憶裝置的一分頁或區塊,並在該記憶裝置的至少一個附加分頁上複製第一權重;以及 將該第二權重存儲在該記憶裝置的一分頁或區塊,該存儲不包含複製。
  8. 根據申請專利範圍第3項所述之設備,進一步包括該存儲控制器,其中存儲控制器配置為執行的操作包括: 從該一或多個處理器接收到人工智慧命令後,從該人工智慧命令中包含的該資訊中,獲取該一或多個神經元中的一第一神經元的一或多個輸入連接或輸出連接中的一第一權重集合,以及該一或多個神經元中的一第二神經元的一或多個輸入連接或輸出連接中的一第二權重集合; 判斷該第一神經元比該第二神經元更頻繁地被存取,並且該第二神經元與該一或多個神經元中的其他該些神經元以相同的速率被存取;以及 回應於該判斷,執行以下步驟: 將該第一權重集合,存儲在該記憶裝置的一第一區域,其用於記錄;以及 將該第二權重集合,存儲在該記憶裝置的一第二區域,其用於長期存儲,非用於記錄。
  9. 根據申請專利範圍第3項所述之設備,進一步包括該存儲控制器,其中該存儲控制器配置為執行的操作包括: 從該一或多個處理器收到該人工智慧命令後,從該人工智慧命令中包含的該資訊中,獲取該一或多個神經元中的一第一神經元的一或多個輸入連接或輸出連接的一權重集合; 判斷該權重集合的一第一權重具有一特別重要值; 比較該特別重要值與一閾重要值; 當比較結果顯示該特別重要值大於或等於該閾重要值,執行一完整糾錯檢查,該完整糾錯檢查作為該第一權重的該一或多個讀取或寫入操作中一部份;以及 當比較結果表明該特殊重要值小於該閾重要值,執行一部分糾錯檢查,該部分糾錯檢查作為該第一權重的該一或多個讀取或寫入操作中一部份,其中該部分糾錯檢查是對應該第一權重的該最高有效位之一所進行,或與對應該第一權重的該最低有效位所進行。
  10. 根據申請專利範圍第3項所述之設備,進一步包括該存儲控制器,其中該存儲控制器配置為執行的操作包括: 從該一或多個處理器收到該人工智慧命令後,從該人工智慧命令中包含的資訊中,獲取該一或多個神經元中的一第一神經元的一或多個輸入連接或輸出連接的一權重集合; 決定該權重集合中的各權重的一第一部分和一第二部分,其中各權重的該第一部分和該第二部分,分別對應於該權重的資訊位元的一第一分段和一第二分段,該第一分段和該第二分段的特徵是對應的相對重要值; 存儲該權重集合中該些權重的該些第一部分,在該記憶裝置的一第一分頁中;以及 存儲該權重集合中該些權重的該些第二部分,在該記憶裝置的一第二分頁中; 其中,一第一次錯誤檢查能力和一第二次不同錯誤檢查能力分別對應該第一分頁和該第二分頁。
  11. 根據申請專利範圍第3項所述之設備,進一步包括該存儲控制器,其中該存儲控制器配置為執行的操作包括: 從該一或多個處理器收到該人工智慧命令後,從該人工智慧命令中包含的該資訊中,獲取該一或多個神經元中的一第一神經元的輸入連接或輸出連接的一權重集合; 決定該權重集合的每個權重的一第一部分和一第二部分,其中各權重的該第一部分和該第二部分,可以分別對應於該權重的資訊位元的一第一分段和一第二分段,該第一分段和該第二分段的特徵是對應的相對重要值; 將該權重集合中該些權重的該些第一部分,存儲在該記憶裝置的一第一區塊中;以及 存儲該權重集合中該些權重的該些第二部分,在該記憶裝置的一第二區塊中; 其中對應該第一區塊的多個程式/擦除週期的數量,不同於對應該第二區塊的多個程式/擦除週期的數量。
  12. 根據申請專利範圍第1項所述之設備,其中該記憶裝置包括至少一第一分割區,用於存儲該些應用程式中所包括的該些人工智慧應用程式對應的資料;以及一第二分割區,用於存儲該些應用程式中所包括的非人工智慧應用程式對應的資料。
  13. 根據申請專利範圍第1項所述之設備,其中該記憶裝置包括:一非揮發性(NVM)存儲器、一通用快閃記憶體儲存(UFS),一快捷外設互聯標準(PCIe)存儲器、一相變化記憶體(PCM)、一可變電阻式記憶體(ReRAM)、一磁阻式隨機存取記憶體(MRAM)、一動態隨機存取記憶體、一磁碟、或一光碟之其中之一。
  14. 一種系統,包括: 一或多個處理器,其中,所述該一或多個處理器中的每個處理器被配置為執行的第一操作,其包括: 從一輸入裝置接收用以處理的輸入資料; 當判斷輸入資料為對應人工智慧應用程式,執行下列步驟: 產生一人工智慧命令,用於對一或多個記憶裝置中的一特定記憶裝置,執行一或多個讀取或寫入操作,該一或多個記憶裝置配置為存儲一或多個多處理器所處理之多個應用程式,該些應用程式包含人工智慧應用程式,該人工智慧命令以一操作代碼為特徵,該人工智慧命令包括對應該輸入資料的該人工智慧應用程式中一或多個組件的資訊; 將該人工智慧命令和該輸入資料發送到一存儲控制器,以管理該特定記憶裝置,其中該存儲控制器使用該操作代碼以及該資訊,以執行該記憶裝置的該一或多個讀取或寫入操作,該資訊包含該人工智慧命令;以及 從該存儲控制器接收在該特定記憶裝置上執行的該一或多個讀取或寫入操作的結果; 其中,該人工智能應用程式的一或多個組件包含一人工神經網路中一或多個神經元; 該輸入數據包括與該一或多個神經元中的每一神經元的一或多個輸入連接或輸出連接中的一或多個對應的權重;以及 當判斷該輸入資料對應於該些應用程式中包含的一非人工智慧應用程式: 存取該一或多個記憶裝置中的一記憶裝置上,對應該輸入資料的一或多個記憶裝置;以及 執行一或多個讀取或寫入操作,在該存取的一或多個記憶位置上;以及 一或多個存儲控制器,其中該一或多個存儲控制器中的每個存儲控制器,管理一或多個記憶裝置中的不同記憶裝置,其中該一或多個存儲控制器中的每個存儲控制器配置為執行的第二操作,包括: 接收一人工智慧命令並從該一或多個處理器中的一處理器接收輸入資料後,從該人工智慧命令中包括的資訊,獲得對應於該一或多個神經元中一第一神經元的一或多個輸入連接或輸出連接的一權重集合; 將該權重集合與該第一神經元聯接起來;以及 回應於該權重集合與該第一神經元的聯接,執行一記憶存取操作,該記憶存取操作包括在一對應的記憶裝置上聯接該第一神經元的該權重集合。
  15. 根據申請專利範圍第14項所述之系統,其中執行該記憶存取操作包括: 將與該第一神經元聯接的該權重集合,存儲在該對應記憶裝置的一特定頁面或區塊中,其中該對應記憶裝置的該特定頁面,配置為存儲與該第一神經元聯接的權重。
  16. 根據申請專利範圍第14項所述之系統,其中執行該記憶存取操作包括: 回應於該權重集合與該第一神經元的聯接: 將該權重集合劃分為一第一子集和一第二子集; 將該第一子集存儲在該記憶裝置的一第一通道的一相同分頁或區塊;以及 將該第二子集存儲在該記憶裝置的一第二通道的一相同分頁或區塊。
  17. 根據申請專利範圍第14項所述之系統,其中執行該記憶存取操作包括: 判斷該權重集合的一第一權重具有一第一重要值、以及該權重集合的一第二權重具有一第二重要值,其中該第二重要值小於該第一重要值;以及 回應於該判斷,執行以下步驟: 將該第一權重存儲在該記憶裝置的一第一分頁的一單層單元;以及 將該第二權重存儲在該記憶裝置的一第二分頁中一多層單元、一三層單元、或一四層單元。
  18. 根據申請專利範圍第14項所述之系統,其中執行該記憶存取操作包括: 判斷該權重集合的一第一權重具有一第一重要值、以及該權重集合的一第二權重具有一第二重要值,其中該第二重要值小於該第一重要值;以及 回應於該判斷,執行以下步驟: 將該第一權重存儲在該記憶裝置的一分頁或區塊中,並在該記憶裝置的至少一個附加分頁中複製第一權重;以及 將該第二權重存儲在該記憶裝置的一分頁或區塊,該存儲不包含複製。
  19. 根據申請專利範圍第14項所述之系統,其中該第二操作還包括: 從該人工智慧命令中包含的該資訊中,獲取該一或多個神經元中的一第二神經元的一或多個輸入連接或輸出連接中的一第二權重集合; 判斷該第一神經元比該第二神經元更頻繁地被存取,並且第二神經元與該一或多個神經元中的其他該些神經元以相同的速率被存取;以及 回應於該判斷,執行以下步驟: 將該第一神經元聯接的該權重集合,存儲在該記憶裝置的一第一區域,其用於記錄; 將該第二權重集合存儲在該記憶裝置的一第二區域,其用於長期存儲,非用於記錄。
  20. 根據申請專利範圍第14項所述之系統,其中執行該記憶存取操作包括: 判斷該權重集合的一第一權重具有一特別重要值; 比較該特別重要值與一閾重要值; 當比較結果顯示該特別重要值大於或等於該閾重要值,執行一完整糾錯檢查,該完整糾錯檢查作為該第一權重的該一或多個讀取或寫入操作中一部份;以及 當比較結果表明該特殊重要值小於該閾重要值,執行一部分糾錯檢查,該部分糾錯檢查作為該第一權重的該一或多個讀取或寫入操作中一部份,其中該部分糾錯檢查是對應該第一權重的該最高有效位之一進行,或與對應該第一權重的該最低有效位進行。
  21. 根據申請專利範圍第14項所述之系統,其中執行該記憶存取操作包括: 決定該權重集合中的各權重的一第一部分和一第二部分,其中各權重的該第一部分和該第二部分,分別對應於該權重的資訊位元的一第一分段和一第二分段,該第一分段和該第二分段的特徵是對應的相對重要值; 存儲該權重集合中該些權重的該些第一部分,在記憶裝置的一第一分頁中;以及 存儲該權重集合中該些權重的該些第二部分,在該記憶裝置的一第二分頁中; 其中,一第一次錯誤檢查能力和一第二次不同錯誤檢查能力分別對應該第一分頁和該第二分頁。
  22. 根據申請專利範圍第14項所述之系統,其中該一或多個記憶裝置包括:一非揮發性(NVM)存儲器、一通用快閃記憶體儲存(UFS),一快捷外設互聯標準(PCIe)存儲器、一相變化記憶體(PCM)、一可變電阻式記憶體(ReRAM)、一磁阻式隨機存取記憶體(MRAM)、一動態隨機存取記憶體、一磁碟、或一光碟之其中之一。
  23. 一種系統,包括: 一處理器從一輸入設備接收輸入資料以進行處理; 當判斷輸入資料為對應人工智慧應用程式,執行下列步驟: 該處理器產生一人工智慧命令,用於對一或多個記憶裝置中的一記憶裝置,執行一或多個讀取或寫入操作,該記憶裝置配置為存儲該多處理器所處理之多個應用程式,該些應用程式包含人工智慧應用程式,該人工智慧命令以一操作代碼為特徵,該人工智慧命令包括對應該輸入資料的該人工智慧應用程式中一或多個組件的資訊; 該處理器將該人工智慧命令和該輸入資料發送到該存儲控制器,該存儲控制器用以管理該記憶裝置,其中該記憶裝置的該一或多個讀取或寫入操作,由該存儲控制器使用操作代碼和包含在該人工智慧命令中的資訊所執行;以及 該處理器從該存儲控制器,接收在該記憶裝置上執行該一或多個讀取或寫入操作的結果; 其中,該人工智能應用程式的該一或多個組件,包含一人工神經網路中一或多個神經元; 該輸入數據包括與一或多個神經元中的每一個神經元的一或多個輸入連接或輸出連接中的一或多個對應的權重;以及 當判斷輸入資料為對應該些應用程式中的非人工智慧應用程式,執行下列步驟: 該處理器存取該記憶裝置中,對應該輸入資料的一或多個記憶位置;以及 該處理器在該存取的一或多個記憶位置上,執行一或多個讀取或寫入操作。
  24. 根據申請專利範圍第23項所述之方法,更包括: 從處理器接收到該人工智慧命令後,由該存儲控制器從該人工智慧命令中包含的該資訊中,獲取對應於該一或多個神經元中的第一神經元的一或多個輸入連接或輸出連接的一權重集合; 通過存儲控制器,聯接該權重集合與該第一神經元;以及 回應於聯接該權重集合與該第一神經元,該存儲控制器執行一記憶存取操作,該記憶存取操作包括聯接該記憶裝置上該第一神經元的該權重集合。
  25. 根據申請專利範圍第24項所述之方法,執行該記憶存取操作包括以下之一: 將與該第一神經元聯接的該權重集合,存儲在該記憶裝置的一特定頁面或區塊中,其中該對應記憶裝置的該特定頁面,配置為存儲與該第一神經元聯接的權重;或者 將該權重集合劃分為一第一子集和一第二子集; 將該第一子集存儲在該記憶裝置的一第一通道的一相同分頁或區塊;以及 將該第二子集存儲在該記憶裝置的一第二通道的一相同分頁或區塊。
  26. 根據申請專利範圍第24項所述之方法,執行該記憶存取操作包括: 判斷該權重集合的一第一權重具有一第一重要值、以及該權重集合的一第二權重具有一第二重要值,其中該第二重要值小於該第一重要值;以及 回應於該判斷,執行以下步驟: 將該第一權重存儲在該記憶裝置的一第一分頁的一單層單元;以及 將該第二權重存儲在該記憶裝置的一第二分頁中一多層單元、一三層單元、或一四層單元。
  27. 根據申請專利範圍第24項所述之方法,執行該記憶存取操作包括: 判斷該權重集合的一第一權重具有一第一重要值、以及該權重集合的一第二權重具有一第二重要值,其中該第二重要值小於該第一重要值;以及 回應於該判斷,執行以下步驟: 將該第一權重存儲在該記憶裝置的一分頁或區塊中,並在該記憶裝置的至少一個附加分頁中複製第一權重;以及 將該第二權重存儲在該記憶裝置的一分頁或區塊,該存儲不包含複製。
  28. 根據申請專利範圍第24項所述之方法,又包括: 從該人工智慧命令中包含的該資訊中,獲取該一或多個神經元中的一第二神經元的一或多個輸入連接或輸出連接中的一第二權重集合; 判斷該第一神經元比該第二神經元更頻繁地被存取,並且第二神經元與該一或多個神經元中的其他該些神經元以相同的速率被存取;以及 回應於該判斷,執行以下步驟: 將該第一神經元聯接的該權重集合,存儲在該記憶裝置的一第一區域,其用於記錄;以及 將該第二權重集合存儲在該記憶裝置的一第二區域,其用於長期存儲,非用於記錄。
  29. 根據申請專利範圍第24項所述之方法,執行該記憶存取操作包括: 判斷該權重集合的一第一權重具有一特別重要值; 比較該特別重要值與一閾重要值; 當比較結果顯示該特別重要值大於或等於該閾重要值,執行一完整糾錯檢查,該完整糾錯檢查作為該第一權重的該一或多個讀取或寫入操作中一部份;以及 當比較結果表明該特殊重要值小於該閾重要值,執行一部分糾錯檢查,該部分糾錯檢查作為該第一權重的該一或多個讀取或寫入操作中一部份,其中該部分糾錯檢查是對應該第一權重的該最高有效位之一進行,或與對應該第一權重的該最低有效位進行。
  30. 根據申請專利範圍第24項所述之方法,執行該記憶存取操作包括: 決定該權重集合中的各權重的一第一部分和一第二部分,其中該各權重的該第一部分和該第二部分,分別對應於該各權重的資訊位元的一第一分段和一第二分段,該第一分段和該第二分段的特徵是對應的相對重要值; 存儲該權重集合中該些權重的該些第一部分,在記憶裝置的一第一分頁中;以及 存儲該權重集合中該些權重的該些第二部分,在該記憶裝置的一第二分頁中; 其中,一第一次錯誤檢查能力和一第二次不同錯誤檢查能力分別對應該第一分頁和該第二分頁。
  31. 根據申請專利範圍第24項所述之方法,執行該記憶存取操作包括: 決定該權重集合的每個權重的一第一部分和一第二部分,其中各權重的該第一部分和該第二部分,可以分別對應於該權重的資訊位元的一第一分段和一第二分段,該第一分段和該第二分段的特徵是對應的相對重要值; 將該權重集合中該些權重的該些第一部分,存儲在記憶裝置的一第一區塊中; 存儲該權重集合中該些權重的該些第二部分,在記憶裝置的一第二區塊中; 其中對應該第一區塊的多個程式/擦除週期的數量,不同於對應該第二區塊的多個程式/擦除週期的數量。
TW107139346A 2018-08-20 2018-11-06 資料儲存設備、系統及方法 TWI696072B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/999,604 US11914860B2 (en) 2018-08-20 2018-08-20 Data storage for artificial intelligence-based applications
US15/999,604 2018-08-20

Publications (2)

Publication Number Publication Date
TW202009713A true TW202009713A (zh) 2020-03-01
TWI696072B TWI696072B (zh) 2020-06-11

Family

ID=69524005

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107139346A TWI696072B (zh) 2018-08-20 2018-11-06 資料儲存設備、系統及方法

Country Status (3)

Country Link
US (1) US11914860B2 (zh)
CN (1) CN110851380B (zh)
TW (1) TWI696072B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI780967B (zh) * 2021-10-28 2022-10-11 旺宏電子股份有限公司 記憶體裝置及記憶體操作方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443185B2 (en) * 2018-10-11 2022-09-13 Powerchip Semiconductor Manufacturing Corporation Memory chip capable of performing artificial intelligence operation and method thereof
US11016851B2 (en) * 2018-11-08 2021-05-25 International Business Machines Corporation Determine recovery mechanism in a storage system by training a machine learning module
US10802930B2 (en) 2018-11-08 2020-10-13 International Business Machines Corporation Determining a recovery mechanism in a storage system using a machine learning module
KR20200084695A (ko) * 2019-01-03 2020-07-13 삼성전자주식회사 응용프로그램의 관리 장치 및 방법
US11080152B2 (en) * 2019-05-15 2021-08-03 Western Digital Technologies, Inc. Optimized neural network data organization
US11907827B2 (en) * 2019-06-28 2024-02-20 Intel Corporation Schedule-aware tensor distribution module
US11372918B2 (en) * 2020-01-24 2022-06-28 Netapp, Inc. Methods for performing input-output operations in a storage system using artificial intelligence and devices thereof
CN111949211B (zh) * 2020-07-10 2023-05-09 深圳宏芯宇电子股份有限公司 存储装置及存储控制方法
US11914887B2 (en) * 2021-04-14 2024-02-27 Macronix International Co., Ltd. Storage device and data accessing method using multi-level cell
US11844145B2 (en) * 2021-06-09 2023-12-12 Qualcomm Incorporated User equipment signaling and capabilities to enable federated learning and switching between machine learning and non-machine learning related tasks
US11789642B2 (en) * 2021-06-28 2023-10-17 Micron Technology, Inc. Loading data from memory during dispatch
KR20230046356A (ko) 2021-09-29 2023-04-06 삼성전자주식회사 메모리 장치, 메모리 장치의 동작 방법, 그리고 메모리 장치를 포함하는 전자 장치
US11818886B2 (en) * 2021-09-29 2023-11-14 International Business Machines Corporation Low program voltage flash memory cells with embedded heater in the control gate
US11829619B2 (en) 2021-11-09 2023-11-28 Western Digital Technologies, Inc. Resource usage arbitration in non-volatile memory (NVM) data storage devices with artificial intelligence accelerators
US12069970B2 (en) * 2022-02-16 2024-08-20 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device, method for configuring memory cell in N-bit memory unit, and memory array

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06195322A (ja) * 1992-10-29 1994-07-15 Hitachi Ltd 汎用型ニューロコンピュータとして用いられる情報処理装置
JPH07302175A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
US7039740B2 (en) * 2002-07-19 2006-05-02 Newisys, Inc. Interrupt handling in systems having multiple multi-processor clusters
US9286198B2 (en) * 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
KR20110046232A (ko) * 2009-10-27 2011-05-04 삼성전자주식회사 데이터 무효화 동작을 수행하는 저장 장치 및 그것의 데이터 무효화 방법
TW201239619A (en) * 2011-03-21 2012-10-01 Silicon Motion Inc Writing method of a flash memory and flash memory device
US8719519B2 (en) * 2012-03-30 2014-05-06 Intel Corporation Split-word memory
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
CN105242983B (zh) * 2014-06-26 2018-06-01 杭州海康威视系统技术有限公司 一种数据存储方法以及一种数据存储管理服务器
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
US10013652B2 (en) * 2015-04-29 2018-07-03 Nuance Communications, Inc. Fast deep neural network feature transformation via optimized memory bandwidth utilization
CN105740946B (zh) 2015-07-29 2019-02-12 上海磁宇信息科技有限公司 一种应用细胞阵列计算系统实现神经网络计算的方法
US11048583B1 (en) * 2015-09-11 2021-06-29 Green Mountain Semiconductor Inc. Flexible, low-latency error correction architecture for semiconductor memory products
US10664751B2 (en) * 2016-12-01 2020-05-26 Via Alliance Semiconductor Co., Ltd. Processor with memory array operable as either cache memory or neural network unit memory
WO2017138234A1 (ja) * 2016-02-08 2017-08-17 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
US10635968B2 (en) * 2016-03-24 2020-04-28 Intel Corporation Technologies for memory management of neural networks with sparse connectivity
US20180024964A1 (en) 2016-07-19 2018-01-25 Pure Storage, Inc. Disaggregated compute resources and storage resources in a storage system
KR20180030319A (ko) * 2016-09-13 2018-03-22 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10705767B2 (en) * 2017-07-20 2020-07-07 International Business Machines Corporation Optimizing user satisfaction when training a cognitive hierarchical storage-management system
JP2019204335A (ja) * 2018-05-24 2019-11-28 株式会社日立製作所 データ処理装置およびプリフェッチ方法
CN110825311B (zh) * 2018-08-10 2023-04-18 昆仑芯(北京)科技有限公司 用于存储数据的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI780967B (zh) * 2021-10-28 2022-10-11 旺宏電子股份有限公司 記憶體裝置及記憶體操作方法

Also Published As

Publication number Publication date
US20200057561A1 (en) 2020-02-20
TWI696072B (zh) 2020-06-11
CN110851380B (zh) 2023-03-14
CN110851380A (zh) 2020-02-28
US11914860B2 (en) 2024-02-27

Similar Documents

Publication Publication Date Title
TWI696072B (zh) 資料儲存設備、系統及方法
WO2021008220A1 (en) Systems and methods for data storage system
US10289313B2 (en) Method and apparatus for improving sequential reading in NAND flash
CN109800177A (zh) 垃圾收集方法、执行方法的存储设备和含设备的计算系统
US20210096986A1 (en) Maintaining data consistency in a memory sub-system that uses hybrid wear leveling operations
CN110221770A (zh) 在存储装置当中改进数据分布的方法
CN113946282A (zh) 使用查找表的可重新配置的存储器内处理逻辑
WO2021080774A1 (en) Construction of a block device
DE102018120964A1 (de) Integrierte Schaltungsspeichervorrichtungen mit verbesserter Pufferspeichernutzung während Lese- und Schreiboperationen
WO2021080785A1 (en) Construction of a block device
US11734205B2 (en) Parallel iterator for machine learning frameworks
US11609855B2 (en) Bit masking valid sectors for write-back coalescing
KR20220148944A (ko) 호스트 시스템의 워크로드에 기초하여 저장 장치에 대한 판독 동작 식별
US11681909B2 (en) Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data
US11769076B2 (en) Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation
US11694076B2 (en) Memory sub-system with internal logic to perform a machine learning operation
US11263156B2 (en) Memory component with a virtualized bus and internal logic to perform a machine learning operation
TW202347118A (zh) 固態儲存驅動器中的硬體加速資料庫排序
US20210110249A1 (en) Memory component with internal logic to perform a machine learning operation
Zhao et al. Leveraging MLC STT-RAM for energy-efficient CNN training
US11676010B2 (en) Memory sub-system with a bus to transmit data for a machine learning operation and another bus to transmit host data
US11562776B2 (en) Performing read operations on grouped memory cells
US11630594B2 (en) Storing data based on a probability of a data graph
Liu Enabling Non-Volatile Memory for Data-intensive Applications
Han Optimizing big data systems with non-volatile memories: from graph computing to flash-based SSD arrays