CN104679813A - 数据储存设备、数据储存方法和数据储存系统 - Google Patents
数据储存设备、数据储存方法和数据储存系统 Download PDFInfo
- Publication number
- CN104679813A CN104679813A CN201410698668.8A CN201410698668A CN104679813A CN 104679813 A CN104679813 A CN 104679813A CN 201410698668 A CN201410698668 A CN 201410698668A CN 104679813 A CN104679813 A CN 104679813A
- Authority
- CN
- China
- Prior art keywords
- data
- holding equipment
- filtered
- level storage
- filtrator
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本申请公开了数据储存设备、数据储存方法和数据储存系统。一体化数据储存设备包括:次级存储器,响应于读取命令提供读取数据;内部硬件过滤器,其根据过滤条件数据过滤第一读取数据以便输出被过滤数据;主存储器;主机控制器;以及存储器控制器,其在主存储器中储存被过滤数据并且之后向主机控制器传递被过滤数据。
Description
相关申请的交叉引用
本申请要求2013年11月28日提交的韩国专利申请第10-2013-0146351号的优先权,其公开通过引用合并在本文中。
技术领域
本发明构思的实施例一般涉及过滤“大数据”的方法。更具体地,本发明构思的实施例涉及包括能够从输入的大数据提取期望的数据的一个或多个嵌入式硬件过滤器的存储器设备。本发明构思的其他实施例涉及包括这类存储器设备的存储器系统和操作存储器系统的方法。
背景技术
个体地或以群组配置的存储器设备是当代的电子和计算系统的重要组件。在各式各样的存储器系统中,存储器设备通常与诸如存储器控制器的一个或多个访问控制组件一起排列。由特定存储器系统提供的数据储存和数据访问能力将根据它的应用而变化。
数据服务器系统是存储器系统的重要子类。数据服务器系统通常包括服务器组件和数据库组件。“服务器”控制能够向数据库写入数据、从数据库读取数据以及保持数据库的操作完整性和有用性的一系列操作的运行。将使用包括一个或多个不同类型半导体存储器件的一个或多个数据储存设备典型地实现数据库。许多服务器系统被具体设计成接收大数据、有效地储存接收到的大数据、并且允许对于储存的大数据的快速访问和检索。
在当代的服务器系统的背景中,可以在“关系”数据库或所谓的“不仅仅结构化查询语言SQL(Not Only Structured Query Language SQL)”或“NoSQL”数据库中储存大数据。因此,可以使用结构化查询语言(SQL)或唯一查询语言(unique query language)在关系数据库或NoSQL数据库中储存的大数据中提取期望的数据。在这点上,NoSQL数据库便于储存数据以及检索储存的数据而不依赖关系数据库的表格关系。
在典型操作中,数据服务器系统传递从数据库检索的大数据并且将它储存在与服务器相关联(可由服务器访问)的主存储器中。然后服务器处理器从储存在主存储器中的大数据提取期望的数据。不幸地,在给定时间段期间,服务器处理器只可以从储存在服务器主存储器中的一部分大数据提取期望的数据,并且主存储器可能具有有限的数据储存容量。结果,当在由当代的服务器系统提供的整体数据通讯能力的背景下考虑时,使用服务器处理器从大数据提取期望数据的传统方法相对低效。此外,数据库向服务器传递大数据以便提取期望的数据总是需要消耗高等级的系统资源。
发明内容
本发明构思的实施例提供一种适合于在数据处理系统中使用的存储器系统,其明显地减少必须在存储器系统的数据储存设备中安排的数据库(次级)存储器和主存储器之间传递的数据的容积。
在一个实施例中,本发明构思针对数据储存设备,其被配置用于在包括主机的存储器系统中使用并且包括:主控制器,其从主机接收指向储存在次级存储器中的大数据当中的期望数据的过滤命令和读取命令,其中所述次级存储器用作储存大数据的数据库;内部硬件过滤器,功能上邻近于次级存储器地布置在数据储存设备中,并且被配置为响应于从读取命令导出的第一读取命令从次级存储器接收第一读取数据,并且根据从过滤命令导出的过滤条件数据过滤接收到的第一读取数据以生成第一被过滤数据;以及存储器控制器,被配置为将由内部硬件过滤器生成的第一被过滤数据储存在数据储存设备中与次级存储器分离的主存储器中,并且之后响应于读取命令向主机传递储存在主存储器中的第一被过滤数据。
在另一实施例中,本发明构思针对数据储存设备,其被配置用于在包括主机的存储器系统中使用。所述数据储存设备包括:主机控制器,其从主机接收指向储存在第一次级存储器和第二次级存储器中的大数据当中的期望数据的过滤命令和读取命令,其中所述第一次级存储器和第二次级存储器共同地用作储存大数据的数据库;第一内部硬件过滤器,功能上邻近于第一次级存储器地布置在数据储存设备中,并且被配置为响应于从读取命令导出的第一读取命令从第一次级存储器接收读取数据的第一部分,并且根据从过滤命令导出的过滤条件数据过滤读取数据的接收到的第一部分以生成第一被过滤数据;第二内部硬件过滤器,功能上邻近于第二次级存储器地被布置在数据储存设备中,并且被配置为响应于第一读取命令从第二次级存储器接收读取数据的第二部分,并且根据过滤条件数据过滤接收到的读取数据的第二部分以生成第二被过滤数据;以及存储器控制器,被配置为将第一被过滤数据和第二被过滤储存在数据储存设备中从第一次级存储器和第二次级存储器分离的主存储器中,以及之后响应于读取命令向主机传递储存在主存储器中的第一被过滤数据和第二被过滤数据。
在另一实施例中,本发明构思针对一种操作数据储存设备的方法,该数据储存设备适合于在包括主机的存储器系统中使用,该数据储存设备嵌入了次级存储器、主存储器以及功能上邻近于次级存储器布置的内部硬件过滤器。所述方法包括:在内部硬件过滤器中从次级存储器接收读取数据,使用储存在内部硬件过滤器中的过滤条件数据过滤读取数据以生成被过滤的数据,在主存储器中储存被过滤的数据,以及向主机传递储存在主存储器中的被过滤数据。
附图说明
在附图中的相关部分中示出本发明构思的特定实施例,其中:
图1是示出根据本发明构思的实施例的数据处理系统的框图;
图2是列出可以用于图1的数据处理系统中的示例性结构化查询语言(SQL)的选定项的表格;
图3和图4分别是示出可以用于本发明构思的特定实施例中的数据库(次级)存储器的示例性数据格式或布局的概念例示;
图5是进一步示出图1的内部硬件过滤器的一个示例的框图;
图6是进一步示出图5的比较器的一个示例的框图;
图7、图8、图13、图15和图16分别是不同地示出与本发明构思的实施例一致的数据处理系统中的示例性数据流的概念图;
图9是示出根据本发明构思的另一实施例的数据处理系统的框图;
图10和图11分别是示出与图9的本发明构思的实施例一致的操作数据处理系统的特定方法的图;
图12和图14分别是示出根据本发明构思的其他实施例的各种数据处理系统的框图;
图17是概述根据本发明构思的实施例的操作数据处理系统的方法的流程图;以及
图18是示出可以合并本发明构思的一个或多个实施例的数据服务器系统的框图。
具体实施方式
现在将参照附图更全面地描述本发明构思,附图中示出了本发明的实施例。然而,本发明构思可以以许多不同的形式来具体实现,不应被解释为仅仅局限于所图示的实施例。相反,提供这些实施例是为了使本公开全面和完整,并向本领域技术人员充分传达本发明的范围。贯穿附图和说明书,使用相同的参考数字和标记来表示相同或相似的元件。
将会理解,当一个元件被称为“连接”或“耦接”到另一元件时,它可以直接连接或耦接到所述另一元件,或者也可以存在居间的元件。相反,当一个元件被称为“直接连接”或“直接耦接”到另一元件时,不均在居间的元件。此处使用的术语“和/或”包括相关列出项目中的任何一个以及其中的一个或多个的所有组合,并且术语“和/或”可以缩写为“/”。
将会理解,尽管此处可能使用术语第一、第二等等来描述不同的元件,但这些元件不应受到这些术语的限制。这些术语仅仅用于将一个元件与另一个元件区分开来。例如,第一信号可以被称为第二信号,类似地,第二信号也可以被称为第一信号,这样做不会偏离本公开的教导。
此处使用的术语仅仅是为了描述特定实施例,并非意图限制本发明。与此处使用的,单数形式“一”、“一个”和“该”意图也包括复数形式,除非上下文明确给出相反指示。还将理解,当在本说明书中使用词语“包括”和/或“包含”时,表明存在所描述的特征、区域、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、区域、整体、步骤、操作、元件、组件和/或它们的组合。
除非另外定义,否则此处使用的所有术语(包括技术术语和科学术语)所具有的含义与本发明所属领域的普通技术人员通常理解的含义相同。还将理解,诸如通常使用的词典中定义的那些术语应该被解释为所具有的含义与它们在相关领域和/或本申请的上下文中的含义一致,而不应理想化地或过分形式化地对其进行解释,除非此处明确地如此定义。
图1是示出根据本发明构思的特定实施例的数据处理系统的框图。参照图1,数据处理系统100A一般包括主机200和数据储存设备300A。
在特定实施例中,数据处理系统100A可以是数据库管理系统(DBMS)或关系数据库管理系统(RDBMS)。DBMS可以包括面向列的DBMS和/或面向行的DBMS。公知的数据库管理系统(DBMS)包括MySQL、PostgreSQL、SQLite、微软SQL Server、微软Access、Oracle、SAP、dBASE、FoxPro、IBMDB2、FilemakerPro等等。
主机200可以用于控制数据储存设备300A的整体操作。在这点上,数据储存设备300A可以被控制以响应于从主机200接收到的多个命令运行写入、读取和/或过滤操作。主机200和数据储存设备300A可以被配置为使用许多通常理解的数据通信协议,诸如串行高级技术附件(SATA)、串行连接SCSI(SAS)、外围组件快速互连(PCIe)等等,中的一个或多个。
数据储存设备300A包括相关部分:总线301、次级存储器310、内部硬件过滤器330、存储器控制器350、主存储器370和主机控制器390。
在特定实施例中,数据储存设备300A可以实现为“一体化”数据储存设备。例如,数据储存设备300A可以实现为固态驱动器(SSD)、嵌入式SSD(eSSD)、和/或硬盘驱动器(HDD)。因此,当数据储存设备300A被实现为SSD或eSSD时,数据处理系统100A可以实现为包括SSD或eSSD的数据处理系统。
次级存储器310可以用于响应于读取命令RCMD向内部硬件过滤器330提供第一读取数据RDATA1。第一读取数据RDATA1可以是大数据,并且次级存储器310可以提供数据库的功能。
次级存储器310可以利用一个或多个非易失性半导体存储器件实现,诸如电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性随机存取存储器或RAM(MRAM)、自旋转移矩MRAM、导电桥RAM(CBRAM)、铁电RAM(FeRAM)、电阻式RAM(RRAM)、纳米管RRAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子学存储器设备、或绝缘体电阻变化存储器。
为了当前描述的目的,假定次级存储器310是NAND快闪存储器或NOR快闪存储器。
内部硬件过滤器330可以被用于根据由主机控制器390和/或主机200经由总线301提供的过滤条件数据(FCD)过滤由次级存储器310提供的第一读取数据RDATA1。响应于提供的FCD,内部硬件过滤器330向总线301提供第一被过滤数据FDATA1。因为内部硬件过滤器330“内部地”具体实现在数据储存设备300A之内,所以与由一些服务器处理器提供相比,获得第一被过滤数据FDATA1所需的存储器系统资源(例如,从次级存储器310到主存储器370传递第一读取数据RDATA1的流所涉及的资源)可以相对传统的数据处理方法而明显地减少。即,因为布置在次级存储器310和总线301之间的内部硬件过滤器330能够有效地过滤(或扫描)从次级存储器310接收到的第一读取数据RDATA1(例如,大数据),所以可以减少必须从次级存储器310到主存储器370传递的大数据的容积。
当数据储存设备300A具体实现为SSD并且次级存储器310可以具体实现为NAND快闪存储器单元阵列时,从SSD传递的数据的容积可以通过内部硬件过滤器330在功能上邻近NAND快闪存储器单元阵列的有益布置而减少。在这方面,短语“功能上邻近”意味着在至少一个操作模式中,数据储存单元300A的第一元件(例如,内部硬件过滤器330)从数据储存单元300A的第二元件(例如,次级存储器310)接收数据,并且在数据由任何其他数据处理元件实质上处理之前处理该接收到的数据。
过滤条件数据FCD可以响应于从主机200接收到的过滤命令FCMD由主机控制器390生成。这里,过滤命令FCMD可以包括指示从接收自数据库的大数据导出的“期望数据”的具体类型、形式和/或质量的一个或多个命令和/或查询。在特定实施例中,过滤命令FCMD可以被定义为厂家命令(vendor command)。
存储器控制器350可以被配置为经由总线301接收由内部硬件过滤器330提供的第一被过滤数据FDATA1,并且在主存储器370中储存第一被过滤数据FDATA1。之后,储存在主存储器370中的第一被过滤数据FDATA1可以被读取并且通过总线301传递到(例如)主机控制器390。
主存储器370可以具体实现为动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、晶闸管RAM(T-RAM)、零电容RAM(Z-RAM)、或双晶体管RAM(TTRAM)。
主机200和数据储存设备300A可以被配置为经由主机控制器390以各种形式和类型传递数据。因此,主机控制器390可以用于使用连接主机200和数据储存器330A的一个或多个数据信号线201从主存储器370接收第一被过滤数据FDATA1以及向主机200传递(或“传送”)第一被过滤数据FDATA1。在这方面,(多个)数据信号线201可以是电和/或光的,并且可以如将由本领域技术人员理解地不同地配置。
图2是列出可以用于图1的数据处理系统的背景下的示例性结构化查询语言(SQL)的选定项的表格。当然,可以使用多个不同的SQL中的任何一个作为能够管理在与本发明构思的实施例一致的RDBMS中的数据的定义和交换的编程语言。
图2中示出的SQL是描述数据处理系统300A的操作的简单说明性示例,其中根据列名PID、NAME(名称)和CITY(城市)作为列的列表,PERSONS(人员)作为表格,并且CITY(城市)=“CITY1”作为列操作符值来过滤大数据。
图3和图4是描述可以在与本发明构思的实施例一致的数据库中使用的不同的数据格式或布局的各个概念例示。参照图3和图4,用于在第一数据库中储存数据的第一数据布局DL1不同于用于在第二数据库中储存数据的第二数据布局DL2。值得注意地,在数据布局DL1和DL2之间,用于头(HEADER)、N行(ROW1到ROWN)以及有关的行偏移(OFF1到OFFN)的各自的布局位置可以不同或相同。
此外,具体“行方向”(即,行值增加的方向)以及“行偏移方向”可以根据每个数据布局DL1和DL2而不同。数据库支持的(多个)数据类型可以根据每个数据布局DL1和DL2而不同地定义。结果,主机200可以将在不同数据库之间进行区分的一个或多个数据指示或数据标识符与用于由数据储存设备300A储存的数据的数据查询一起传递。
图5是进一步示出图1的内部硬件过滤器330的一个示例的框图。参照图1和图5,内部硬件过滤器330包括相关部分:数据缓冲器331、数据提取器333以及数据比较器335。
数据缓冲器331可以用于缓冲由次级存储器310提供的第一读取数据RDATA1。例如,假定数据缓冲器331具体实现为SRAM,数据缓冲器331可以用于缓冲页面数据。
因此,数据缓冲器331可以用于(例如)响应于从(例如)数据提取器333提供的相应地址向数据提取器333传递第一读取数据RDATA1的元数据(MDATA)和相应数据(DATA)部分两者。相应地址可以响应于提取条件数据ECD(接收到的过滤条件数据FCD的一部分)而被识别或定义。即,数据提取器333可以致使包括在第一读取数据RDATA1中的元数据和相应数据从数据缓冲器331中被读取,其中元数据包括(例如)头、一个或多个偏移和/或一个或多个指针(pointer)。
在关系数据库中,相应数据(DATA)可以按行、按记录和/或按元组被引用。此外,在关系数据库中,列可以按字段或属性被提及。
更笼统地说,数据提取器333可以相对于第一读取数据RDATA1并且响应于接收到的过滤条件数据FCD的提取条件数据ECD部分来区分第一提取数据(或第一过滤数据FD1)与第二提取数据(或第二过滤数据FD2)。
在图5中示出的特定实施例中,数据提取器333包括分析数据生成电路333-1以及提取电路333-3。
分析数据生成电路333-1可以用于从第一读取数据RDATA1生成数据(例如,分析数据PDATA)以用于分析包括在一行中的列。之后,可以基于提取条件数据ECD和元数据MDATA将结果分析数据传递到提取电路333-3。在这方面,分析数据生成电路333-1还可以用于储存提取条件数据ECD。
根据特定可适用的定义,提取条件数据ECD可以包括能够在列之间和数据库类型(例如,SQL类型或唯一查询语言类型)之间进行分类的分类数据(TIF)。提取条件数据ECD还可以包括能够提取将被作为由数据比较器335执行的比较运算的对象的特定列的列提取数据(QIF)。
进一步关于上述这点,提取电路333-3可以被用于响应于(或“基于”)从分析数据生成电路接收到的分析数据PDATA从第一读取数据RDATA1的每行提取第一提取数据FD1和第二提取数据FD2。
图5中示出的数据比较器335包括寄存器335_1、比较器335_3和输出控制电路335-5。在它的操作中,数据比较器335比较从过滤条件数据FCD导出的匹配键数据MKD与第一提取数据FD1以根据比较结果确定是否输出第二提取数据FD2作为第一被过滤数据FDATA1。
为了完成该目的,寄存器335-1可以用于储存匹配键数据MKD。在这方面,寄存器335-1可以具体实现为用作各种各样的数据缓冲器的SRAM。匹配键数据MKD包括指示数据类型的类型指示数据(D_TYPE)、指示操作符类型的操作符指示数据(C_TYPE)、以及指示数据(例如,将被提取的列值)的提取指示数据(R_DATA)。
操作符类型可以是,例如,“等于(=)”、“不等于(<、>或!=)”、“大于(>)”、“小于(<)、“大于或等于(<=)”、或“小于或等于(<=)。
比较器335-3比较由寄存器335-1提供的参考数据S_DATA与第一提取数据FD1,并且根据比较结果生成比较信号CRS。这里,可以基于匹配键数据MKD的一部分或全部生成参考数据S_DATA。
输出控制电路335-5可以用于响应于比较信号CRS确定是否输出第二提取数据FD2。例如,当操作符指示数据C_DATA是“等于(=)”,并且包括在参考数据S_DATA中的提取指示数据R_DATA与第一提取数据FD1相同时,则输出控制电路335-5将输出第二提取数据FD2作为第一被过滤数据FDATA1。在其他条件下,输出控制电路335-5将不输出第二提取数据FD2作为第一被过滤数据FDATA1。
图6是进一步示出图5的比较器335_3的一个示例的框图。参照图5和图6,比较器335-3包括相关部分:多个数据类型比较器336-1、336-2、336-3、336-4和336-5(共同地称作336-1到336-5),以及逻辑电路336-6。
参考数据S_DATA可以用于“设置”数据类型比较器336-1到336-5中的每一个。这里,参考数据S_DATA可以包括类型指示数据(D_TYPE)、操作符指示数据(C_TYPE)、和/或提取指示数据(R_DATA)。类型指示数据D_TYPE可以用于按大小和/或类型来表征数据。数据类型比较器336-1到336-5中的每一个比较接收到的提取指示数据R_DATA与共同接收到的第一提取数据FD1,以便根据各自的比较结果生成相应的比较信号CP1、CP2、CP3、CP4和CP5(共同地称作“CP1到CP5”)。
“数据类型”可以是能够区分各种类型的数据的分类。例如,代表性的数据类型可以包括:整数、布尔型、字符、浮点数和/或字母数字字符串。
第一数据类型比较器336-1可以用于比较包括在提取指示数据R_DATA中的整数与第一提取数据FD1,并且第二数据类型比较器336-2可以用于比较包括在提取指示数据R_DATA中的布尔型与第一提取数据FD1,而且对于任何合理数量的数据类型“k”和相应的(多个)数据类型比较器336-k也是如此。
然后,在图6所示的特定示例中,逻辑电路336-6可以用于在接收到的比较信号CP1到CP5上执行逻辑运算以便生成比较信号CRS。例如,逻辑电路336-6可以具体实现为异或(XOR)门。
为了描述的方便起见,在图6中仅仅已经示出了五(5)个数据类型比较器336-1到336-5作为示例。在本发明构思的多个实施例中实际使用的数据类型比较器336-k的数量将根据由比较器335-3接收到的数据的设计而变化。
图7是描述图1的数据处理系统中的示例性数据流的概念图。在这方面,再次假定图1、图5和图6的数据储存设备300A提供先前根据图2中示出的SQL示例描述的第一被过滤数据FDATA1。
因此,根据图2中示出的SQL,类型指示数据D_TYPE表示字符,操作符指示数据C_TYPE表示“等于(=)”,提取指示数据R_DATA表示列值CITY1,分类数据TIF包括用于分类从在包括在表格TAB1中的列名PID、NAME、ADDRESS(地址)和CITY当中被提取的每个列名PID、NAME和CITY的数据,并且列提取数据QIF表示将被提取的列名CITY。这里,根据参考数据S_DATA,比较器335-3的第三数据类型比较器336-3可以操作以便在字符之间进行比较。
可以根据由(例如)类似图9或图14的CPU 303的中央处理单元控制的固件或应用编程接口(API)在内部硬件过滤器330中设置或编程过滤条件数据FCD。
固件或API可以在从次级存储器310、或从与主存储器370相关联的其它的非易失性存储器加载之后由CPU 303控制。通过固件或API的操作,从过滤条件数据FCD提取的提取条件数据ECD可以在分析数据生成电路333-1中被编程,并且过滤条件数据FCD的匹配键数据MKD可以在寄存器335-1中被编程。
具有名称“PERSONS”的第一表格(TAB1)基于第一读取命令RCMD1从第一次级存储器310输出到第一内部硬件过滤器330。
第一读取数据RDATA1包括第一表格TAB1和与第一表格TAB1的数据相关的元数据。第一内部硬件过滤器330的数据缓冲器331从次级存储器310接收包含列项(或值)PID1、NAME1、ADD1和CITY1的第一行(REC1)。
当第一行REC1(即,数据(DATA))响应于相应地址被传递到提取电路333-3时,数据缓冲器331向分析数据信号生成器333-1提供与第一行REC1相关的元数据。即,分析数据信号生成器333-1可以从数据缓冲器331读取与第一行REC1相关联的元数据(MDATA),并且提取电路333-3可以从数据缓冲器331读取相应数据(DATA)。
分析数据信号生成器333-1然后可以用于基于分类数据TIF和列提取数据QIF向提取电路333-3传递分析数据PDATA。例如,分析数据PDATA包括每个列PID、NAME和CITY,或每个列值PID1、NAME1和CITY的开始位置或开始地址。
提取电路333-3然后可以基于分析数据PDATA向比较器335-3传递提取的包括在列CITY中的列值CITY1作为第一提取数据FD1。此外,提取电路333-3从第一行REC1提取包含列值PID1、NAME1和CITY1的第二提取数据FD2,并且基于分析数据PDATA向输出控制电路335-5输出提取的第二提取数据FD2。
比较器335-3比较包括在参考数据S_DATA中的列值CITY1与包括在第一提取数据FD1中的列值CITY1,并且输出指示正(即,匹配)比较结果的比较信号CRS。输出控制电路335-5然后响应于正比较信号CRS向总线301输出包括列值PID1、NAME1和CITY1的第二提取数据FD2作为第一被过滤数据FDATA1。
存储器控制器350在主存储器370中储存包括列值PID1、NAME1和CITY1的行REC1’。连续地,第一内部硬件过滤器330的数据缓冲器331从第一次级存储器310接收包含列值PID2、NAME2、ADD2和CITY2的第二行REC2。
数据缓冲器331响应于相应地址向分析数据信号生成器333-1传递与第二行REC2相关的元数据,并且向提取电路333-3传递相应的第二行REC2。即,分析数据信号生成器333-1从数据缓冲器331读取元数据,而提取电路333-3从数据缓冲器331读取相应数据。
分析数据信号生成器333-1基于分类数据TIF和列提取数据QIF向提取电路333-3传递分析数据PDATA。例如,与图7的操作示例一致,分析数据PDATA包括每个列PID、NAME和CITY,或每个列值PID2、NAME2和CITY2的开始位置或开始地址。
提取电路333-3然后可以基于分析数据PDATA向比较器335-3传递提取的包括在列CITY中的列值CITY2作为第一提取数据FD1。此外,提取电路333-3可以用于基于分析数据PDATA从第二行REC2提取包括列值PID2、NAME2和CITY2的第二提取数据FD2,并且向输出控制电路335-5输出提取的第二提取数据FD2。
比较器335-3比较包括在参考数据S_DATA中的列值CITY1与包括在第一提取数据FD1中的列值CITY2,并且根据比较的结果输出表示不匹配的比较信号CRS。
输出控制电路335-5响应于表示不匹配的比较信号CRS不输出包括列值PID2、NAME2和CITY2的第二提取数据FD2。连续地,第一内部硬件过滤器330的数据缓冲器331从次级存储器310接收包含列值PID3、NAME3、ADD3和CITY1的第三行REC3。
数据缓冲器331响应于相应地址向分析数据信号生成器333-1传递与第三行REC3相关的元数据,并且还向提取电路333-3传递第三行REC3的相应数据。即,分析数据信号生成器333-1从数据缓冲器331读取元数据,而提取电路333-3从数据缓冲器331读取相应数据。
分析数据信号生成器333-1基于分类数据TIF和列提取数据QIF向提取电路333-3传递分析数据PDATA。例如,在图7的操作示例中,分析数据PDATA包括每个列PID、NAME和CITY,或每个列值PID3、NAME3和CITY1的开始位置或开始地址。
提取电路333-3可以用于基于分析数据PDATA向比较器335-3传递提取的包括在列CITY中的列值CITY1作为第一提取数据FD1。此外,提取电路333-3可以用于基于分析数据PDATA从第三行REC3提取包含列值PID3、NAME3和CITY1的第二提取数据FD2,并且向输出控制电路335-5输出提取的第二提取数据FD2。
比较器335-3比较包括在参考数据S_DATA中的列值CITY1与包括在第一提取数据FD1中的列值CITY1,并且当这些值匹配时输出正比较信号CRS。
输出控制电路335-5可以响应于正比较信号CRS向总线301输出包括列值PID3、NAME3和CITY1的第二提取数据FD2作为第一被过滤数据FDATA1。
存储器控制器350在主存储器370中储存包括列值PID3、NAME3和CITY1的行REC3’。即,存储器控制器350可以将每个列值PID3、NAME3和CITY1存储在与每个列名PID、NAME和CITY相对应的列中。连续地,第一内部硬件过滤器330的数据缓冲器331从次级存储器310接收包含列值PID4、NAME4、ADD4和CITY3的第四行REC4。
数据缓冲器331响应于相应地址向分析数据信号生成器333-1传递与第四行REC4相关的元数据,并且向提取电路333-3传递与第四行REC4相关的相应数据。
分析数据信号生成器333-1然后可以基于分类数据TIF和列提取数据QIF向提取电路333-3传递分析数据PDATA。例如,在图7的操作示例中,分析数据PDATA包括每个列PID、NAME和CITY,或每个列值PID4、NAME4和CITY3的开始位置或开始地址。
提取电路333-3基于分析数据PDATA向比较器335-3传递列值CITY3作为第一提取数据FD1。此外,提取电路333-3可以用于基于分析数据PDATA从第四行REC4提取包括列值PID4、NAME4和CITY3的第二提取数据FD2,并且向输出控制电路335-5输出提取的第二提取数据FD2。
比较器335-3比较包括在参考数据S_DATA中的列值CITY1与包括在第一提取数据FD1中的列值CITY3,并且输出指示值不匹配的负比较信号CRS。
输出控制电路335-5将响应于指示值不匹配的负比较信号CRS不输出包括列值PID4、NAME4和CITY3的第二提取数据FD2。在由存储器控制器350生成的表格TAB2被储存在主存储器370中之后,存储器控制器350读取表格TAB2的数据内容并且经由总线301向主机控制器390传递该数据内容。
主机控制器390根据图2的SQL向主机200传递包括列值CITY1的表格TAB2的数据内容。在图7中每个行REC1到REC4被顺序地储存在数据缓冲器331中之后,可以向数据提取器333顺序地输出每个行REC1到REC4。
图8是进一步描述通过图1的数据处理系统中的数据流的另一概念图。这里,假定数据储存设备300A根据唯一查询语言,诸如由数据储存设备300A的制造商定义的查询语言提供第一被过滤数据FDATA1。
现在参照图1、图5、图6和图8。根据图8中示出的唯一查询语言,类型指示数据D_TYPE指示整数,操作符指示数据C_TYPE表示“等于(=)”,提取指示数据R_DATA表示列值91、501、27、99,分类数据TIF包括用于分类将从包括在表格TAB3中的列名PID、Data(数据)和Request(请求)中被提取的每个列名IP、Data和Request的数据,并且列提取数据QIF表示将提取的列名IP。这里,根据参考数据S_DATA,第一比较器335-3的第一数据类型比较器336-1可以操作以便比较整数。
可以使用由CPU 303控制的固件或API在第一内部硬件过滤器330中编程过滤条件数据FCD。例如,过滤条件数据FCD的提取条件数据ECD可以在分析数据生成电路333-1中被编程,并且过滤条件数据FCD的匹配键数据MKD可以在寄存器335-1中被编程。
响应于第一读取命令RCMD1通过硬件过滤器330从次级存储器310读取具有名称“LOG”(日志)的表格TAB3。可以基于从主机200接收到的读取命令RCMD生成第一读取命令RCMD1。
因此,得到的第一读取数据RDATA1包括表格TAB3的数据内容以及与表格TAB3相关的元数据。第一内部硬件过滤器330的数据缓冲器331从次级存储器310接收包含列值141.222.44.1、11/18/2013和(例如)“Get/a.jpg”指令的第一行REC11。
数据缓冲器331然后响应于相应地址向分析数据信号生成器333-1传递与第一行REC11相关的元数据,并且向提取电路333-3传递第一行REC11的相应数据。
分析数据信号生成器333-1基于分类数据TIF和列提取数据QIF向提取电路333-3传递分析数据PDATA。例如,在图8示出了示例中,分析数据PDATA包括每个列IP、Date和Request,或每个列值141.222.44.1、11/18/2013和Get/a.jpg的开始位置或开始地址。
提取电路333-3然后可以基于分析数据PDATA向比较器335-3传递提取的包括在列IP中的列值141.222.44.1作为第一提取数据FD1。此外,提取电路333-3还可以用于基于分析数据PDATA从第一行REC11提取包含列值141.222.44.1,11/18/2013和Get/a.jpg的第二提取数据FD2,并且向输出控制电路335-5输出提取的第二提取数据FD2。
比较器335-3比较包括在参考数据S_DATA中的列值91.501.27.99与包括在第一提取数据FD1中的列值141.222.44.1,并且因此输出指示值的不匹配的负比较信号CRS。
输出控制电路335-5将响应于负比较信号CRS不输出包括列值141.222.44.1、11/18/2013和Get/a.jpg的第二提取数据FD2。连续地,第一内部硬件过滤器330的数据缓冲器331从次级存储器310接收包含列值91.501.27.99、11/18/2013和Get/X.jpg的第二行REC12。
数据缓冲器331响应于相应地址向分析数据信号生成器333-1传递与第二行REC12相关的元数据,并且向提取电路333-3传递与第二行REC12相关的相应数据。
分析数据信号生成器333-1基于分类数据TIF和列提取数据QIF向提取电路333-3传递分析数据PDATA。例如,分析数据PDATA包括每个列IP、Date和Request,或每个列值91.501.27.99、11/18/2013和Get/X.jpg的开始位置或开始地址。
因此,提取电路333-3基于分析数据PDATA向比较器335-3传递提取的包括在列IP中的列值91.501.27.99作为第一提取数据FD1。此外,提取电路333-3可以用于基于分析数据PDATA从第二行REC12提取包括列值91.501.27.99、11/18/2013和Get/X.jpg的第二提取数据FD2,并且向输出控制电路335-5输出提取的第二提取数据FD2。
现在,比较器335-3可以用于比较包括在参考数据S_DATA中的列值91.501.27.99与包括在第一提取数据FD1中的列值91.501.27.99,并且将因此输出指示值匹配的正比较信号CRS。
输出控制电路335-5现在将响应于正比较信号CRS向总线301输出包括列值91.501.27.99、11/18/2013和Get/X.jpg的第二提取数据FD2作为第一被过滤数据FDATA1。
存储器控制器350在主存储器370中储存包括列值91.501.27.99、11/18/2013和Get/X.jpg的行。这里,存储器控制器350可以生成用于储存列值91.501.27.99、11/18/2013和Get/X.jpg中的每一个的列名IP、Date和Request,并且将每个列值91.501.27.99,11/18/2013和Get/X.jpg储存在与每个列名IP、Date和Request相对应的列中。
与第三行REC13相对应的包括列值202.511.2.49、11/18/2013和Get/b.jpg的第二提取数据FD2,以及与第四行REC14相对应的包括列值225.123.45.9、11/18/2013和Get/b.jpg的第二提取数据FD2不被第一内部硬件过滤器330输出。
图9是示出根据本发明构思的另一实施例的数据处理系统的框图。参照图9,数据处理系统100B一般包括主机200和数据储存设备300B。
如前所述,主机200可以用于控制数据储存设备300B的整体操作。除了添加CPU 303和第二存储器控制器305之外,图9中示出的数据储存设备300B的结构和操作大体上与先前相对于图1的数据储存设备300A描述的结构和操作相同。这里,与主存储器370功能上相关联的存储器控制器被称为“第一存储器控制器350”,而与次级存储器310功能上相关联的存储器控制器被称为“第二存储器控制器305”。
如前所述,假定主机200生成针对数据储存设备300B的过滤命令FCMD和读取命令RCMD。CPU 303可以用于控制第二存储器控制器305、内部硬件过滤器330、第一存储器控制器350和主机控制器390的操作。
CPU 303可以被配置为经由主机控制器390和总线301接收过滤命令FCMD、解释过滤命令FCMD、生成相应的过滤条件数据FCD、然后使用由CPU 303执行的固件或API在内部硬件过滤器330中编程过滤条件数据FCD。
CPU 303基于从主机200输出的读取命令RCMD生成命令、并且向第二存储器控制器305输出生成的命令。第二存储器控制器305响应于命令生成第一读取命令RCMD1,并且向第一次级存储器310发送第一读取命令RCMD1。
第一次级存储器310可以响应于第一读取命令RCMD1向内部硬件过滤器330发送该第一读取数据RDATA1。当第一次级存储器310被用作数据库时,“指示数据”作为过滤命令FCMD的一部分,指示特定数据库类型(或SQL类型)。
如前所述,过滤命令FCMD可以包括指示数据和查询。因此,在本发明构思的特定实施例中,过滤命令FCMD可以包括指示数据、查询和读取命令RCMD。查询可以是SQL或唯一查询语言。在本发明构思的特定其他实施例中,数据储存设备300B可以进一步包括额外的CPU 303-1,其中CPU303-1可以用于基于从主机200接收到的过滤命令FCMD生成控制序列。例如,控制序列可以包括关于将读取的表格的信息,关于将从表格提取的列或包括在表格之内的列的信息,关于将提取的列值的信息等等。这种类型的控制序列还可以包括数据库类型和/或SQL类型。
CPU 303可以基于控制序列生成过滤条件数据FCD,并且使用由CPU303执行的固件或API在第一内部硬件过滤器330中设置过滤条件数据FCD。
图10是进一步描述用于图9的数据处理系统的操作方法的概念图。假定数据处理系统100B的操作发生在从主机200接收到包括指示数据和查询两者的过滤命令FCMD的时间。该查询可以是诸如图2中示出的那样的SQL,或诸如图8中示出的那样的唯一查询语言。以下描述利用上面的存储器系统描述。
首先,CPU 303接收由主机200提供的过滤命令FCMD(S110)。使用CPU303和/或主机控制器390,数据储存设备300B解释过滤命令FCMD、生成相应的过滤条件数据FCD、然后向内部硬件过滤器330传递过滤条件数据FCD(S112)。这时,过滤条件数据FCD被写入内部硬件过滤器330中(S114)。
之后,CPU 303从主机200接收读取命令RCMD(S116),基于读取命令RCMD生成命令,然后向第二存储器控制器305传递生成的命令。作为响应,第二存储器控制器305生成第一读取命令RCMD1并且向第一次级存储器310传递第一读取命令RCMD1(S118)。
次级存储器310基于从第二存储器控制器305接收到的第一读取命令RCMD1向内部硬件过滤器330传递第一读取数据RDATA1(S120)。如上所述,内部硬件过滤器330根据过滤条件数据FCD过滤第一读取数据RDATA1,并且经由总线301向第一存储器控制器350传递第一被过滤数据FDATA1,然后,第一存储器控制器350向主存储器370写入第一被过滤数据FDATA1(S122)。
然后,第一存储器控制器350可以用于从主存储器370读取第一被过滤数据FDATA1,并且经由总线301和/或主机控制器390将其传给主机200(S124)。
图11是在与上面提及的相同假定下,进一步描述用于图9的数据处理系统的操作方法的另一概念图。
CPU 303接收包括读取命令RCMD的过滤命令FCMD(S210),解释包括在过滤命令FCMD中的指示数据和查询,根据解释生成过滤条件数据FCD,然后向内部硬件过滤器330传递过滤条件数据FCD(S212)。用这样的方式,过滤条件数据FCD可以被写入内部硬件过滤器330中(S214)。
当CPU 303向第二存储器控制器305传递响应于读取命令RCMD生成的命令时,第二存储器控制器305基于该命令生成第一读取命令RCMD1,并且向第一次级存储器310传递第一读取命令RCMD1(S216)。
次级存储器310基于从第二存储器控制器305接收到的第一读取命令RCMD1向内部硬件过滤器330传递第一读取数据RDATA1(S218)。如上所述,内部硬件过滤器330根据过滤条件数据FCD过滤第一读取数据RDATA1,然后经由总线301向第一存储器控制器350传递第一被过滤数据FDATA1。第一存储器控制器350现在可以向主存储器370写入第一被过滤数据FDATA1(S220)。
之后,第一存储器控制器350可以用于读取储存在主存储器370中的第一被过滤数据FDATA1,并且经由总线301和/或主机控制器390将第一被过滤数据FDATA1传给主机200。
图12是示出根据本发明构思的仍一实施例的数据处理系统的框图。图13是进一步描述图12的数据处理系统的操作的概念图。
参照图12,数据处理系统100C同样一般包括主机200和数据储存设备300C。然而,如图13中所示,在储存在两(2)个次级存储器310和310-1中的每一个中的数据当中,储存在标记为“PERSONS”的表格中的数据以分散方式被储存。
即,与数据的表格的较大部分相对应的第一表格TAB1储存在第一次级存储器310中,而与数据的表格中的另一部分(例如,剩余部分)相对应的第二表格TAB11储存在第二次级存储器310-1中。多个次级存储器中的每一个与相应的(例如,第一和第二)内部硬件过滤器功能上关联(例如,在数据通道关系方面)。
为了描述的方便起见,图12的实施例仅以两(2)个次级存储器310和310-1以及相应的内部硬件过滤器330和330-1进行说明。然而,根据本发明构思的实施例的其他过滤方法可以包括任何合理数量的次级存储器和内部硬件过滤器。此外,两个或更多次级存储器可以功能上共享相同的内部硬件过滤器。
除了添加第二次级存储器310-1和第二内部硬件过滤器330-1之外,图12中示出的数据储存设备300C的结构和操作大体上与图1的数据储存设备300A的结构和操作相同。即,相对于图1和图9的实施例描述的内部硬件过滤器330的结构和操作大体上与并入图12的实施例的第二内部硬件过滤器330-1的结构和操作相同。
主机200向数据储存设备300C输出过滤命令FCMD和读取命令RCMD。基于过滤命令FCMD生成的过滤条件数据FCD可以通过由图14的CPU 303执行的固件或API在每个内部硬件过滤器330和330-1中设置或编程。
所以,如先前参照图1、图5和图7描述的,第一次级存储器310可以用于响应于第一读取命令RCMD1向第一内部硬件过滤器330传递第一读取数据RDATA1。
第一内部硬件过滤器330然后可以根据过滤条件数据FCD过滤第一读取数据RDATA1并且向总线301输出第一被过滤数据FDATA1。第一存储器控制器350在主存储器370中储存与每个行REC1和REC3相对应的每个行REC1’和REC3’。
此外,第二次级存储器310-1响应于第二读取命令RCMD2向第二内部硬件过滤器330-1传递第二读取数据RDATA2。第二内部硬件过滤器330-1可以根据过滤条件数据FCD过滤第二读取数据RDATA2,并且向总线301输出第二被过滤数据FDATA2。
第一存储器控制器350在主存储器370中储存与每个行REC5和REC7相对应的每个行REC5’和REC7’。第一存储器控制器350读取包括在储存在主存储器370中的每个表格TAB2和TAB12中的每个行REC1’、REC3’、REC5’和REC7’,并且向总线301发送包括每个行REC1’,REC3’、REC5’和REC7’的数据,例如,表格TAB13。
主机控制器390向主机200发送第一被过滤数据FDATA1和第二被过滤数据FDATA2作为一个表格TAB13。
图14是示出根据本发明构思的再一实施例的数据处理系统的框图。参照图14,数据处理系统100D同样包括主机200和数据储存设备300D,其中除了CPU 303的修改以及第二存储器控制器305的添加之外,图14中示出的数据储存设备300D的结构和操作大体上与相对于图12描述的数据储存设备300C的结构和操作相同。
主机200向数据储存设备300D输出过滤命令FCMD和读取命令RCMD。如上所述,过滤命令FCMD可以包括读取命令RCMD。
CPU 303可以控制第二存储器控制器305、内部硬件过滤器330、第二内部硬件过滤器330-1、第一存储器控制器350和主机控制器390的操作。CPU 303可以通过主机控制器390和总线301接收过滤命令FCMD、解释过滤命令FCMD、基于解释的结果生成过滤条件数据FCD、以及在内部硬件过滤器330和330-1中的每一个中编程过滤条件数据FCD。
CPU 303解释读取命令RCMD并且向第二存储器控制器305输出相应于解释的结果的命令。
第二存储器控制器305响应于从CPU 303输出的命令RCMD生成第一读取命令RCMD1和第二读取命令RCMD2,向第一次级存储器310发送第一读取命令RCMD1,并且向第二次级存储器310-1发送第二读取命令RCMD2。因此,第一次级存储器310响应于第一读取命令RCMD1向第一内部硬件过滤器330发送第一读取数据RDATA1,以及第二次级存储器310-1响应于第二读取命令RCMD2向第二内部硬件过滤器330-1发送第二读取数据RDATA2。
图14中示出的实施例中的CPU 303特别地包括内部存储器(MEM)304。内部存储器304可以具体实现为SRAM,并且可以被用于过滤来自第一被过滤数据FDATA1和第二被过滤数据FDATA2的必要数据。此额外的过滤步骤将被称为通过CPU 303的“次级过滤”。
主机控制器390可以用于向主机200传递经历CPU 303的次级过滤的数据。
图15是示出通过图1的数据处理系统中的数据流的概念图。假定数据储存在第一次级存储器310和第二次级存储器310-1两者中,每个第一次级存储器310和第二次级存储器310-1分别用作数据库,所储存的数据(可以具有可变长度)还被假定为以行排列方式储存。这里,也可以假定数据的期望行的第一部分储存在第一次级存储器310中,而期望行的第二部分储存在第二次级存储器310-1中。
如图15中所示,一行跨越第一次级存储器310和第二次级存储器310-1储存。即,与行的第一部分相对应的第一数据A1A2A3被储存在第一次级存储器310的第一表格TAB21中,而与行的第二部分相对应的第二数据B1B2B3储存在第二次级存储器310-1的第二表格TAB22中。
第一内部硬件过滤器330可以用于根据过滤条件数据FCD过滤第一读取数据RDATA1以便输出第一被过滤数据FDATA1。这里,第一内部硬件过滤器330可以用于生成指示输出数据是第一被过滤数据FDATA1的标志FLAG=1,并且经由总线301向第一存储器控制器350输出标志FLAG=1和第一被过滤数据FDATA1两者。
第二内部硬件过滤器330-1可以用于根据过滤条件数据FCD过滤第二读取数据RDATA2以便输出第二被过滤数据FDATA2。这里,第二内部硬件过滤器330-1可以用于生成指示输出数据是第二被过滤数据FDATA2的标志FLAG=1,并且经由总线301向第一存储器控制器350输出标志FLAG=1和第二被过滤数据FDATA2两者。因此,主机200可以基于相应标志值区分第一被过滤数据FDATA1和第二被过滤数据FDATA2。
图16是示出在与相对于图15做出的相同假定下通过图14的数据处理系统的另一数据流的概念图。这里,与行的第一部分相对应的第一数据A1A2A3-1储存在第一次级存储器310的第一表格TAB31中,并且与行的第二部分相对应的第二数据A3-2储存在第二次级存储器310-1的第二表格TAB32中。
第一内部硬件过滤器330不过滤第一数据,而是将第一读取数据RDATA1“按照原样”输出或“按照原样”储存在第一次级存储器310中。这里,第一内部硬件过滤器330可以用于生成指示第一数据的输出(UFDATA1)未被过滤的标志FLAG=0。因此,标志值和“按照原样”的第一数据UFDATA1两者经由总线301被传递给第一存储器控制器350。
此外,第二内部硬件过滤器330-1还可以用于输出“按照原样”的、没有过滤的第二读取数据RDATA2。这里,第二内部硬件过滤器330-1还生成指示输出“按照原样”的数据(UFDATA2)的标志FLAG=0。FLAG=0和第二输出数据UFDATA2两者经由总线301被提供给第一输出存储器控制器350。
图17是概述根据本发明构思的实施例的操作数据处理系统的方法的流程图。所示出的操作方法可以被应用于先前相对于图1、图5、图12和图17描述的数据储存设备300A、300B、300C或300D中的任何一个。
根据图17,在硬件过滤器330和330-1中的至少一个中“设置”或编程过滤条件数据FCD(S310)。过滤条件数据FCD可以是与过滤命令FCMD相关的数据。过滤条件数据FCD可以通过CPU 303在第一内部硬件过滤器330和330-1中的至少一个中被编程或者根据由CPU 303执行的固件或API被编程。
次级存储器310和310-1中的至少一个现在执行相应的读取命令RCMD1和/或RCMD2(S320),并且向相应的内部硬件过滤器330和/或330-1传递得到的读取数据RDATA1和/或RDATA2。
硬件过滤器330和330-1中的至少一个使用过滤条件数据FCD过滤相应数据RDATA1和/或RDATA2,并且经由总线301和第一存储器控制器350在主存储器370中储存相应的被过滤数据FDATA1和/或FDATA2(S340)。
第一存储器控制器350通过总线301和主机控制器390向主机200发送储存在主存储器370中的相应的被过滤数据FDATA1和/或FDATA2(S350)。
图18是根据本发明的实施例的数据服务器系统的框图。参照图18,数据服务器系统400包括多个客户端401、多个网络服务器410到412、多个数据库服务器200-1到200-2、以及多个数据库DB1到DB2。数据服务器系统400可以指的是搜索入口或因特网数据中心(IDC)。
多个客户端401可以通过网络与网络服务器410到412中的每一个通信。多个客户端401中的每一个可以具体实现为个人计算机(PC)、膝上型计算机、智能电话、平板PC、个人数字助理(PDA)、或移动互联网设备(MID)。
多个网络服务器410到412中的每一个可以通过网络414与多个数据库服务器200-1到200-2中的每一个通信。多个数据库服务器200-1到200-2中的每一个可以执行主机200的功能。
多个数据库服务器200-1到200-2中的每一个可以控制多个数据库DB1到DB2中的每一个的操作。多个数据库服务器200-1到200-2中的每一个可以访问多个数据库DB1到DB2中的每一个。数据库DB1到DB2中的每一个包括多个数据储存设备300。
多个网络服务器410到412以及多个数据库服务器100-1到100-2可以通过网络相互通信。网络包括有线网络、无线网络、互联网或移动电话网。
嵌入了次级存储器、内部硬件过滤器和主存储器的一体化数据储存设备可以最小化一个或多个次级存储器与主存储器之间的数据流。
嵌入在一体化数据储存设备中的内部硬件过滤器可以被用于“接近”次级存储器地过滤大数据,从而降低在从大数据当中选择期望数据的过程期间在存储器之间必须交换的大数据的容积。
虽然已经示出和描述了本发明构思的一些实施例,但本领域技术人员将会理解,可以对示出和描述的实施例做出改变而不会偏离本发明构思的示出和精神,本发明构思的范围在以下权利要求及其等效物中限定。
Claims (20)
1.一种配置用于在包括主机的存储器系统中使用的数据储存设备,所述数据储存设备包括:
主机控制器,其从主机接收针对储存在次级存储器中的大数据当中的期望数据的过滤命令和读取命令,其中所述次级存储器用作储存大数据的数据库;
内部硬件过滤器,功能上邻近于次级存储器地布置在数据储存设备中,并且被配置为响应于从所述读取命令导出的第一读取命令从次级存储器接收第一读取数据,并且根据从过滤命令导出的过滤条件数据过滤接收到的第一读取数据以生成第一被过滤数据;以及
存储器控制器,被配置为在数据储存设备中的与次级存储器分离的主存储器中储存由内部硬件过滤器生成的第一被过滤数据,以及响应于所述读取命令向主机传递储存在主存储器中的第一被过滤数据。
2.如权利要求1所述的数据储存设备,其中所述主机控制器响应于过滤命令生成过滤条件数据。
3.如权利要求1所述的数据储存设备,其中所述过滤条件数据通过结构化查询语言(SQL)表示。
4.如权利要求1所述的数据储存设备,其中所述主机控制器从所述读取命令生成第一读取命令。
5.如权利要求1所述的数据储存设备,其中所述次级存储器使用数据库布局储存第一读取数据,该数据库布局包括头、沿定义的行方向排列的多个行以及多个行偏移,每个行偏移分别与所述多个行中的一个相关联。
6.如权利要求1所述的数据储存设备,其中所述过滤命令包括查询,并且所述数据储存设备还包括:
中央处理单元(CPU),被配置为响应于查询生成过滤条件数据,并且编程过滤条件数据到内部硬件过滤器。
7.如权利要求6所述的数据储存设备,其中所述查询通过结构化查询语言(SQL)和唯一查询语言中的一个表示。
8.如权利要求6所述的数据储存设备,其中所述过滤命令和所述读取命令被组合在由主机提供的单个命令中。
9.如权利要求1所述的数据储存设备,其中所述内部硬件过滤器包括:
数据缓冲器,其接收并缓冲第一读取数据;
数据提取器,其使用包括在过滤条件数据中的提取条件数据从第一读取数据提取第一提取数据和第二提取数据;以及
数据比较器,其比较包括在过滤条件数据中的匹配键数据与第一提取数据,并且确定当匹配键数据和第一提取数据之间是正比较结果时输出第二提取数据作为第一被过滤数据。
10.如权利要求9所述的数据储存设备,其中,所述数据提取器包括:
分析数据生成电路,其基于提取条件数据和第一读取数据的元数据生成用于分析包括在第一读取数据的行中的列的分析数据;以及
提取电路,其基于分析数据从第一读取数据的行提取第一提取数据和第二提取数据。
11.如权利要求10所述的数据储存设备,其中,所述数据比较器包括:
寄存器,其储存匹配键数据;
比较器,其比较储存在寄存器中的匹配键数据与第一提取数据以生成正匹配比较信号或负不匹配比较信号;以及
输出控制电路,其响应于正比较信号确定输出第二提取数据。
12.一种配置用于在包括主机的存储器系统中使用的数据储存设备,所述数据储存设备包括:
主机控制器,其从主机接收指向储存在第一次级存储器和第二次级存储器中的大数据当中的期望数据的过滤命令和读取命令,其中所述第一次级存储器和第二次级存储器共同地用作储存大数据的数据库;
第一内部硬件过滤器,功能上邻近于第一次级存储器地布置在数据储存设备中,并且被配置为响应于从所述读取命令导出的第一读取命令从第一次级存储器接收读取数据的第一部分,并且根据从过滤命令导出的过滤条件数据过滤接收到的读取数据的第一部分以生成第一被过滤数据;
第二内部硬件过滤器,功能上邻近于第二次级存储器地布置在数据储存设备中,并且被配置为响应于第一读取命令从第二次级存储器接收读取数据的第二部分,并且根据过滤条件数据过滤接收到的读取数据的第二部分以生成第二被过滤数据;以及
存储器控制器,被配置为将第一被过滤数据和第二被过滤数据储存在数据储存设备中的与第一次级存储器和第二次级存储器分离的主存储器中,以及响应于所述读取命令向主机传递储存在主存储器中的第一被过滤数据和第二被过滤数据。
13.如权利要求12所述的数据储存设备,还包括:
第一中央处理单元(CPU),其基于过滤命令生成控制序列;以及
第二CPU,其基于控制序列生成过滤条件数据,
其中所述控制序列包括:识别将从第一次级存储器读取的表格的第一信息、识别将从包括在表格中的列当中提取的列的第二信息、以及识别将从表格提取的列值的第三信息。
14.如权利要求12所述的数据储存设备,其中,所述数据储存设备包括固态驱动器(SSD),第一次级存储器是快闪存储器,并且主存储器是动态随机存取存储器(DRAM)。
15.如权利要求12所述的数据储存设备,其中所述第一内部硬件过滤器生成与第一被过滤数据相关联的标志,该标志指示第一被过滤数据是否已经根据过滤条件数据被过滤。
16.一种操作数据储存设备的方法,该数据储存设备适合于在包括主机的存储器系统中使用,该数据储存设备嵌入了次级存储器、主存储器以及功能上邻近于次级存储器布置的内部硬件过滤器,所述方法包括:
在内部硬件过滤器中从次级存储器接收读取数据;
使用储存在内部硬件过滤器中的过滤条件数据过滤读取数据以生成被过滤数据;
在主存储器中储存被过滤数据;以及
向主机传递储存在主存储器中的被过滤数据。
17.如权利要求16所述的方法,还包括:
在数据储存设备中从主机接收查询;以及
响应于查询在内部硬件过滤器中编程过滤条件数据。
18.如权利要求16所述的方法,还包括:
从主机接收指示数据和查询;以及
响应于指示数据和查询在内部硬件过滤器中编程过滤条件数据,其中,当读取数据储存在次级存储器中时,使用由指示数据识别的数据库格式。
19.如权利要求18所述的方法,其中所述数据库格式包括:头、沿行方向排列的多个行以及多个行偏移,每个行偏移分别与所述多个行中的一个相关联。
20.如权利要求18所述的方法,其中所述查询通过结构化查询语言(SQL)和唯一查询语言中的一个表示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2013-0146351 | 2013-11-28 | ||
KR1020130146351A KR102103543B1 (ko) | 2013-11-28 | 2013-11-28 | 내부 하드웨어 필터를 포함하는 일체형 데이터 저장 장치, 이의 동작 방법, 및 상기 데이터 저장 장치를 포함하는 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679813A true CN104679813A (zh) | 2015-06-03 |
CN104679813B CN104679813B (zh) | 2019-05-31 |
Family
ID=53183559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410698668.8A Active CN104679813B (zh) | 2013-11-28 | 2014-11-27 | 数据储存设备、数据储存方法和数据储存系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10210196B2 (zh) |
JP (1) | JP6563642B2 (zh) |
KR (1) | KR102103543B1 (zh) |
CN (1) | CN104679813B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798111A (zh) * | 2017-11-01 | 2018-03-13 | 四川长虹电器股份有限公司 | 一种分布式环境中大批量导出数据的方法 |
CN108920410A (zh) * | 2018-06-22 | 2018-11-30 | 华北理工大学 | 一种大数据处理装置及方法 |
CN108958649A (zh) * | 2018-05-17 | 2018-12-07 | 天津飞腾信息技术有限公司 | 一种用于存储系统的安全隔离方法及装置 |
CN109461811A (zh) * | 2018-09-12 | 2019-03-12 | 华中科技大学 | 一种crs阻变存储器的混合可重配方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9448742B2 (en) * | 2014-03-27 | 2016-09-20 | Western Digital Technologies, Inc. | Communication between a host and a secondary storage device |
KR102251811B1 (ko) | 2015-01-02 | 2021-05-13 | 삼성전자주식회사 | 하드웨어 필터를 포함하는 데이터 저장 장치 및 상기 데이터 저장 장치를 포함하는 데이터 처리 시스템 |
CN106649455B (zh) * | 2016-09-24 | 2021-01-12 | 孙燕群 | 一种大数据开发的标准化系统归类、命令集系统 |
US11010431B2 (en) * | 2016-12-30 | 2021-05-18 | Samsung Electronics Co., Ltd. | Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet SSD |
KR102444606B1 (ko) * | 2017-08-28 | 2022-09-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN113536075B (zh) * | 2021-07-20 | 2024-06-04 | 锐掣(杭州)科技有限公司 | 数据提取方法、装置及存储介质 |
US20240106782A1 (en) * | 2022-09-28 | 2024-03-28 | Advanced Micro Devices, Inc. | Filtered Responses of Memory Operation Messages |
CN116028532A (zh) * | 2023-03-24 | 2023-04-28 | 山东浪潮科学研究院有限公司 | 一种数据库数据过滤方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120079175A1 (en) * | 2010-09-28 | 2012-03-29 | Fusion-Io, Inc. | Apparatus, system, and method for data transformations within a data storage device |
CN102682052A (zh) * | 2010-12-28 | 2012-09-19 | 微软公司 | 过滤数据存储上的查询数据 |
CN102929799A (zh) * | 2012-10-17 | 2013-02-13 | 北京西塔网络科技股份有限公司 | 数据采集存储方法及系统 |
CN103069384A (zh) * | 2010-08-10 | 2013-04-24 | 桑迪士克以色列有限公司 | 用从储存设备加载的操作系统代码安全地引导主机设备的主机设备和方法 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55108030A (en) | 1979-02-13 | 1980-08-19 | Hitachi Ltd | Data transfer control system |
JPS60105060A (ja) | 1983-11-12 | 1985-06-10 | Nippon Telegr & Teleph Corp <Ntt> | 内容検索処理方式 |
WO1990010912A1 (en) * | 1989-03-14 | 1990-09-20 | Kabushiki Kaisha Dainichi | Data retrieval device and data editing apparatus using this device |
JPH0424821A (ja) | 1990-05-20 | 1992-01-28 | Fujitsu Ltd | 外部記憶装置 |
US6292844B1 (en) | 1998-02-12 | 2001-09-18 | Sony Corporation | Media storage device with embedded data filter for dynamically processing data during read and write operations |
KR100457694B1 (ko) | 1998-08-26 | 2005-01-15 | 삼성전자주식회사 | 하드디스크 서보 정보 기록 장치 및 그 방법 |
JP4076415B2 (ja) | 2002-09-19 | 2008-04-16 | 富士通株式会社 | 検索方法、検索装置、及びコンピュータプログラム |
US7203691B2 (en) | 2002-09-27 | 2007-04-10 | Ncr Corp. | System and method for retrieving information from a database |
US7437666B2 (en) * | 2003-10-22 | 2008-10-14 | Intel Corporation | Expression grouping and evaluation |
KR100677491B1 (ko) * | 2005-09-12 | 2007-02-02 | 엘지전자 주식회사 | 이동 통신 단말기의 사운드 연동 진동 강도 제어 장치 |
US8244718B2 (en) | 2006-08-25 | 2012-08-14 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries |
US20080065590A1 (en) * | 2006-09-07 | 2008-03-13 | Microsoft Corporation | Lightweight query processing over in-memory data structures |
US8719501B2 (en) * | 2009-09-08 | 2014-05-06 | Fusion-Io | Apparatus, system, and method for caching data on a solid-state storage device |
KR100854032B1 (ko) * | 2007-02-09 | 2008-08-26 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 저장 방법 |
US7970919B1 (en) * | 2007-08-13 | 2011-06-28 | Duran Paul A | Apparatus and system for object-based storage solid-state drive and method for configuring same |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
US8099528B2 (en) | 2008-09-30 | 2012-01-17 | Apple Inc. | Data filtering using central DMA mechanism |
TWI397071B (zh) | 2008-12-31 | 2013-05-21 | A Data Technology Co Ltd | 記憶體儲存裝置及其控制方法 |
US8782336B2 (en) * | 2010-05-11 | 2014-07-15 | Marvell World Trade Ltd. | Hybrid storage system with control module embedded solid-state memory |
US9355109B2 (en) * | 2010-06-11 | 2016-05-31 | The Research Foundation For The State University Of New York | Multi-tier caching |
US9558247B2 (en) * | 2010-08-31 | 2017-01-31 | Samsung Electronics Co., Ltd. | Storage device and stream filtering method thereof |
US20120054420A1 (en) * | 2010-08-31 | 2012-03-01 | Jeonguk Kang | Storage device and stream filtering method thereof |
EP2742429A4 (en) * | 2011-08-09 | 2015-03-25 | Lsi Corp | I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST |
US9201825B1 (en) * | 2011-11-02 | 2015-12-01 | Marvell International Ltd. | Data storage methods and apparatus |
US8792279B2 (en) * | 2012-11-09 | 2014-07-29 | Sandisk Technologies Inc. | Architectures for data analytics using computational NAND memory |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9092321B2 (en) * | 2013-07-24 | 2015-07-28 | NXGN Data, Inc. | System and method for performing efficient searches and queries in a storage node |
US9934043B2 (en) * | 2013-08-08 | 2018-04-03 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing computational imaging pipeline |
KR102213674B1 (ko) * | 2014-02-17 | 2021-02-08 | 삼성전자주식회사 | 내부 하드웨어 필터를 포함하는 일체형 데이터 저장 장치와 이의 동작 방법 |
US10025824B2 (en) * | 2015-05-27 | 2018-07-17 | International Business Machines Corporation | Filter optimizer for data streams |
-
2013
- 2013-11-28 KR KR1020130146351A patent/KR102103543B1/ko active IP Right Grant
-
2014
- 2014-11-05 US US14/533,672 patent/US10210196B2/en active Active
- 2014-11-26 JP JP2014238759A patent/JP6563642B2/ja active Active
- 2014-11-27 CN CN201410698668.8A patent/CN104679813B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103069384A (zh) * | 2010-08-10 | 2013-04-24 | 桑迪士克以色列有限公司 | 用从储存设备加载的操作系统代码安全地引导主机设备的主机设备和方法 |
US20120079175A1 (en) * | 2010-09-28 | 2012-03-29 | Fusion-Io, Inc. | Apparatus, system, and method for data transformations within a data storage device |
CN102682052A (zh) * | 2010-12-28 | 2012-09-19 | 微软公司 | 过滤数据存储上的查询数据 |
CN102929799A (zh) * | 2012-10-17 | 2013-02-13 | 北京西塔网络科技股份有限公司 | 数据采集存储方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798111A (zh) * | 2017-11-01 | 2018-03-13 | 四川长虹电器股份有限公司 | 一种分布式环境中大批量导出数据的方法 |
CN108958649A (zh) * | 2018-05-17 | 2018-12-07 | 天津飞腾信息技术有限公司 | 一种用于存储系统的安全隔离方法及装置 |
CN108958649B (zh) * | 2018-05-17 | 2021-03-23 | 天津飞腾信息技术有限公司 | 一种用于存储系统的安全隔离方法及装置 |
CN108920410A (zh) * | 2018-06-22 | 2018-11-30 | 华北理工大学 | 一种大数据处理装置及方法 |
CN109461811A (zh) * | 2018-09-12 | 2019-03-12 | 华中科技大学 | 一种crs阻变存储器的混合可重配方法 |
CN109461811B (zh) * | 2018-09-12 | 2020-02-21 | 华中科技大学 | 一种crs阻变存储器的混合可重配方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20150061945A (ko) | 2015-06-05 |
JP6563642B2 (ja) | 2019-08-21 |
KR102103543B1 (ko) | 2020-05-29 |
US10210196B2 (en) | 2019-02-19 |
US20150149490A1 (en) | 2015-05-28 |
CN104679813B (zh) | 2019-05-31 |
JP2015106413A (ja) | 2015-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679813A (zh) | 数据储存设备、数据储存方法和数据储存系统 | |
JP6639420B2 (ja) | フラッシュ最適化データ・レイアウトのための方法、フラッシュ最適化記憶のための装置、およびコンピュータ・プログラム | |
US8819335B1 (en) | System and method for executing map-reduce tasks in a storage device | |
JP6553649B2 (ja) | クラスタリング記憶方法および装置 | |
TWI603211B (zh) | Construction of inverted index system based on Lucene, data processing method and device | |
US9535956B2 (en) | Efficient set operation execution using a single group-by operation | |
US9367585B2 (en) | Data storage and query method | |
US20140046928A1 (en) | Query plans with parameter markers in place of object identifiers | |
CN103262074A (zh) | 并行再分区索引扫描 | |
US20160350007A1 (en) | Storage apparatus and method for autonomous space compaction | |
US11042328B2 (en) | Storage apparatus and method for autonomous space compaction | |
US11288287B2 (en) | Methods and apparatus to partition a database | |
US11151138B2 (en) | Computer program for processing a pivot query | |
US10394459B2 (en) | Data storage device for filtering page in two steps, system including the same, and method of operating the same | |
CN112912870A (zh) | 租户标识符的转换 | |
US11729268B2 (en) | Computer-implemented method, system, and storage medium for prefetching in a distributed graph architecture | |
US20130041887A1 (en) | Adding entries to an index based on use of the index | |
WO2012164738A1 (ja) | データベース管理システム、装置及び方法 | |
Wang et al. | PLSM: a highly efficient LSM-tree index supporting real-time big data analysis | |
US10872103B2 (en) | Relevance optimized representative content associated with a data storage system | |
US9047342B2 (en) | Method for accelerating queries containing local range conditions using subtraction of cumulative bitmaps | |
Rababa et al. | Optimizations for filter-based join algorithms in MapReduce | |
CN115438066A (zh) | 一种数据检索处理方法和系统 | |
KR102251811B1 (ko) | 하드웨어 필터를 포함하는 데이터 저장 장치 및 상기 데이터 저장 장치를 포함하는 데이터 처리 시스템 | |
KR102213674B1 (ko) | 내부 하드웨어 필터를 포함하는 일체형 데이터 저장 장치와 이의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |