CN115810383A - 基于read retry的拉偏电压选择实现方法和装置 - Google Patents

基于read retry的拉偏电压选择实现方法和装置 Download PDF

Info

Publication number
CN115810383A
CN115810383A CN202210859124.XA CN202210859124A CN115810383A CN 115810383 A CN115810383 A CN 115810383A CN 202210859124 A CN202210859124 A CN 202210859124A CN 115810383 A CN115810383 A CN 115810383A
Authority
CN
China
Prior art keywords
bias
error correction
data
pull
uecc
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.)
Pending
Application number
CN202210859124.XA
Other languages
English (en)
Inventor
刘孟雄
蔡辉
罗宗扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Yilian Information System Co Ltd
Original Assignee
Suzhou Yilian Information System Co Ltd
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 Suzhou Yilian Information System Co Ltd filed Critical Suzhou Yilian Information System Co Ltd
Priority to CN202210859124.XA priority Critical patent/CN115810383A/zh
Publication of CN115810383A publication Critical patent/CN115810383A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本申请涉及一种基于read retry的拉偏电压选择实现方法、装置、计算机设备和存储介质,其中该方法包括:Nand flash读取数据并判断是否发生UECC;若数据发生UECC则查找发生UECC的page对应的记录;若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;Nandflash读取数据并判断数据纠错是否成功;若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。本发明提出的拉偏电压选择方案可以精确的进行read retry,避免过多的无效电压拉偏和数据读取动作,减少了SSD命令响应延时,提高了用户体验。

Description

基于read retry的拉偏电压选择实现方法和装置
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种基于read retry的拉偏电压选择实现方法、装置、计算机设备和存储介质。
背景技术
SSD(Solid State Drive,固态硬盘)作为一种新型存储介质,其采用NAND颗粒作为数据存储,已经广泛应用于PC,笔记本,服务器等各个领域并逐渐取代HDD(Hard DiskDrive,机械硬盘)成为存贮领域的主流应用产品。
目前,随着Nand flash的发展,一方面用户对Nand flash数据可靠性要求越来越高。另一方面,原厂提供的数据发生UECC(Unable Error Correcting Code)后read retry参考的电压档位越来越丰富。在SSD使用过程中,因为PE的增加导致数据UECC的概率越来越高,在现有技术中,如果每次数据发生UECC,都从第一个等级拉偏电压开始read retry,将导致读操作完成的延时变长,进而可能出现卡顿等不良体验。
发明内容
基于此,有必要针对上述技术问题,提供一种基于read retry的拉偏电压选择实现方法、装置、计算机设备和存储介质。
一种基于read retry的拉偏电压选择实现方法,所述方法包括:
Nand flash读取数据并判断是否发生UECC;
若数据发生UECC则查找发生UECC的page对应的记录;
若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;
Nand flash读取数据并判断数据纠错是否成功;
若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。
在其中一个实施例中,所述根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试的步骤还包括:
获取当前UECC的page所在block的PE值并选择对应的电压拉偏等级表;
配置拉偏电压,Nand flash读取数据并判断数据纠错是否成功;
若数据没有纠正回来,则选择下一档拉偏电压。
在其中一个实施例中,在所述配置拉偏电压,Nand flash读取数据并判断数据纠错是否成功步骤之后还包括:
若纠错成功则更新对应的拉偏电压记录。
在其中一个实施例中,所述方法还包括:
维护每个block和page在发生UECC后进行read retry将数据纠正回来的拉偏电压等级,并重新排列原厂提供的电压拉偏等级表。
一种基于read retry的拉偏电压选择实现装置,所述基于read retry的拉偏电压选择实现装置包括:
第一判断模块,所述第一判断模块用于Nand flash读取数据并判断是否发生UECC;
查找模块,所述查找模块用于若数据发生UECC则查找发生UECC的page对应的记录;
第一纠错模块,所述第一纠错模块用于若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;
第二判断模块,所述第二判断模块用于Nand flash读取数据并判断数据纠错是否成功;
第二纠错模块,所述第二纠错模块用于若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。
在其中一个实施例中,所述第二纠错模块还用于:
获取当前UECC的page所在block的PE值并选择对应的电压拉偏等级表;
配置拉偏电压,Nand flash读取数据并判断数据纠错是否成功;
若数据没有纠正回来,则选择下一档拉偏电压。
在其中一个实施例中,所述第二纠错模块还用于:
若纠错成功则更新对应的拉偏电压记录。
在其中一个实施例中,所述装置还包括维护配置模块,所述维护配置模块用于:
维护每个block和page在发生UECC后进行read retry将数据纠正回来的拉偏电压等级,并重新排列原厂提供的电压拉偏等级表。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述基于read retry的拉偏电压选择实现方法、装置、计算机设备和存储介质通过Nand flash读取数据并判断是否发生UECC;若数据发生UECC则查找发生UECC的page对应的记录;若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;Nand flash读取数据并判断数据纠错是否成功;若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。本发明提出的拉偏电压选择方案可以精确的进行read retry,避免过多的无效电压拉偏和数据读取动作,减少了SSD命令响应延时,提高了用户体验。
附图说明
图1为现有技术中read retry方案的流程示意图;
图2为一个实施例中基于read retry的拉偏电压选择实现方法的流程示意图;
图3为另一个实施例中基于read retry的拉偏电压选择实现方法的流程示意图;
图4为再一个实施例中基于read retry的拉偏电压选择实现方法的流程示意图;
图5为一个实施例中基于read retry的拉偏电压选择实现装置的结构框图;
图6为另一个实施例中基于read retry的拉偏电压选择实现装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
目前,参考图1所示的现有技术中read retry方案的流程示意图,该方案包括如下步骤:
当数据出现UECC时,需要从原厂提供的第1个等级的拉偏电压开始,依次去重复拉扁电压以及读取数据的动作。以YMTC颗粒为例,从X1-9060到X2-9060颗粒,其原厂提供的拉偏电压等级由29档提高至50余档。在SSD的生命周期中后期,随着Nand flash的磨损,数据发生UECC的概率会越来越高,此时如果每次数据发生UECC,都从第一个等级拉偏电压开始read retry,读操作完成的延时变长,带给用户体验则是变卡顿。
基于此,本发明提出了一种基于read retry的拉偏电压选择实现方法,旨在可以精确选择read retry的拉偏电压,提高Nand flash数据read retry的效率。
在一个实施例中,如图2所示,提供了一种基于read retry的拉偏电压选择实现方法,该方法包括:
步骤202,Nand flash读取数据并判断是否发生UECC;
步骤204,若数据发生UECC则查找发生UECC的page对应的记录;
步骤206,若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;
步骤208,Nand flash读取数据并判断数据纠错是否成功;
步骤210,若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。
在本实施例中,提供了一种基于read retry的拉偏电压选择实现方法,用于提高Nand flash的read retry效率,最终可以提升用户体验。该方法具体实施过程如下:
在一个实施例中,该方法还包括:维护每个block和page在发生UECC后进行readretry将数据纠正回来的拉偏电压等级,并重新排列原厂提供的电压拉偏等级表。
具体地,首先在SSD工作过程中需要维护每个block和page在发生UECC后进行readretry将数据纠正回来的拉偏电压等级。然后,重新排列原厂提供的电压拉偏等级表,例如:可以将每500个PE为一档。
接着,Nand flash读取数据并判断是否发生UECC,即是否发生了无法进行错误纠正的情况。若数据发生UECC则查找发生UECC的page对应的记录。
若存在上一次纠错成功的电压拉偏等级记录,则用纠错成功的电压拉偏等级进行一次纠错。若不存在上次纠错成功的记录,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。
在进行一次拉偏电压选择之后,Nand flash读取数据并再次判断数据纠错是否成功。若数据还没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。
在上述实施例中,通过Nand flash读取数据并判断是否发生UECC;若数据发生UECC则查找发生UECC的page对应的记录;若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;Nand flash读取数据并判断数据纠错是否成功;若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。本方案提出的拉偏电压选择方案可以精确的进行readretry,避免过多的无效电压拉偏和数据读取动作,减少了SSD命令响应延时,提高了用户体验。
在一个实施例中,如图3所示,提供了一种基于read retry的拉偏电压选择实现方法,该方法中根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试的步骤还包括:
步骤302,获取当前UECC的page所在block的PE值并选择对应的电压拉偏等级表;
步骤304,配置拉偏电压,Nand flash读取数据并判断数据纠错是否成功;
步骤306,若数据没有纠正回来,则选择下一档拉偏电压;
步骤308,若纠错成功则更新对应的拉偏电压记录。
具体地,可参考图4所示的基于read retry的拉偏电压选择实现方法的示意图,其具体流程如下:
首先,软件在SSD工作过程中需要维护每个block和page在发生UECC后,进行readretry将数据纠正回来的拉偏电压等级。
接着,每500个PE为一档,重新排列原厂提供的电压拉偏等级表。
然后,当数据发生UECC时,查找发生UECC的page对应的记录,如果有上一次纠错成功的电压拉偏等级记录,则用该等级进行一次纠错。
最后,如果数据没有纠正回来,则需要获取当前UECC的page所在block的PE值,选择对应的电压拉偏等级表,逐级尝试。当数据纠正回来时,更新对应的拉偏电压记录。
在本实施例中,可以实现精确地实现read retry拉偏电压选择,降低SSD生命中后期命令响应延迟,有效地提高了用户体验。
应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种基于read retry的拉偏电压选择实现装置500,该装置包括:
第一判断模块501,所述第一判断模块用于Nand flash读取数据并判断是否发生UECC;
查找模块502,所述查找模块用于若数据发生UECC则查找发生UECC的page对应的记录;
第一纠错模块503,所述第一纠错模块用于若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;
第二判断模块504,所述第二判断模块用于Nand flash读取数据并判断数据纠错是否成功;
第二纠错模块505,所述第二纠错模块用于若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。
在一个实施例中,第二纠错模块505还用于:
获取当前UECC的page所在block的PE值并选择对应的电压拉偏等级表;
配置拉偏电压,Nand flash读取数据并判断数据纠错是否成功;
若数据没有纠正回来,则选择下一档拉偏电压。
在其中一个实施例中,第二纠错模块505还用于:
若纠错成功则更新对应的拉偏电压记录。
在一个实施例中,如图6所示,提供了一种基于read retry的拉偏电压选择实现装置500,该装置还包括维护配置模块506,所述维护配置模块用于:
维护每个block和page在发生UECC后进行read retry将数据纠正回来的拉偏电压等级,并重新排列原厂提供的电压拉偏等级表。
关于基于read retry的拉偏电压选择实现装置的具体限定可以参见上文中对于基于read retry的拉偏电压选择实现方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于read retry的拉偏电压选择实现方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于read retry的拉偏电压选择实现方法,所述方法包括:
Nand flash读取数据并判断是否发生UECC;
若数据发生UECC则查找发生UECC的page对应的记录;
若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;
Nand flash读取数据并判断数据纠错是否成功;
若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。
2.根据权利要求1所述的基于read retry的拉偏电压选择实现方法,其特征在于,所述根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试的步骤还包括:
获取当前UECC的page所在block的PE值并选择对应的电压拉偏等级表;
配置拉偏电压,Nand flash读取数据并判断数据纠错是否成功;
若数据没有纠正回来,则选择下一档拉偏电压。
3.根据权利要求2所述的基于read retry的拉偏电压选择实现方法,其特征在于,在所述配置拉偏电压,Nand flash读取数据并判断数据纠错是否成功步骤之后还包括:
若纠错成功则更新对应的拉偏电压记录。
4.根据权利要求1-3任一项所述的基于read retry的拉偏电压选择实现方法,其特征在于,所述方法还包括:
维护每个block和page在发生UECC后进行read retry将数据纠正回来的拉偏电压等级,并重新排列原厂提供的电压拉偏等级表。
5.一种基于read retry的拉偏电压选择实现装置,其特征在于,所述基于read retry的拉偏电压选择实现装置包括:
第一判断模块,所述第一判断模块用于Nand flash读取数据并判断是否发生UECC;
查找模块,所述查找模块用于若数据发生UECC则查找发生UECC的page对应的记录;
第一纠错模块,所述第一纠错模块用于若存在上一次纠错成功的电压拉偏等级记录,则用所述纠错成功的电压拉偏等级进行一次纠错;
第二判断模块,所述第二判断模块用于Nand flash读取数据并判断数据纠错是否成功;
第二纠错模块,所述第二纠错模块用于若数据没有纠正回来,则需要根据当前UECC的page所在block的状态选择对应的电压拉偏等级表并逐级进行尝试。
6.根据权利要求5所述的基于read retry的拉偏电压选择实现装置,其特征在于,所述第二纠错模块还用于:
获取当前UECC的page所在block的PE值并选择对应的电压拉偏等级表;
配置拉偏电压,Nand flash读取数据并判断数据纠错是否成功;
若数据没有纠正回来,则选择下一档拉偏电压。
7.根据权利要求6所述的基于read retry的拉偏电压选择实现装置,其特征在于,所述第二纠错模块还用于:
若纠错成功则更新对应的拉偏电压记录。
8.根据权利要求5-7任一项所述的基于read retry的拉偏电压选择实现装置,其特征在于,所述装置还包括维护配置模块,所述维护配置模块用于:
维护每个block和page在发生UECC后进行read retry将数据纠正回来的拉偏电压等级,并重新排列原厂提供的电压拉偏等级表。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202210859124.XA 2022-07-20 2022-07-20 基于read retry的拉偏电压选择实现方法和装置 Pending CN115810383A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210859124.XA CN115810383A (zh) 2022-07-20 2022-07-20 基于read retry的拉偏电压选择实现方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210859124.XA CN115810383A (zh) 2022-07-20 2022-07-20 基于read retry的拉偏电压选择实现方法和装置

Publications (1)

Publication Number Publication Date
CN115810383A true CN115810383A (zh) 2023-03-17

Family

ID=85482367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210859124.XA Pending CN115810383A (zh) 2022-07-20 2022-07-20 基于read retry的拉偏电压选择实现方法和装置

Country Status (1)

Country Link
CN (1) CN115810383A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116665761A (zh) * 2023-05-24 2023-08-29 珠海妙存科技有限公司 数据分析方法、数据分析装置、电子设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116665761A (zh) * 2023-05-24 2023-08-29 珠海妙存科技有限公司 数据分析方法、数据分析装置、电子设备和存储介质
CN116665761B (zh) * 2023-05-24 2024-01-23 珠海妙存科技有限公司 数据分析方法、数据分析装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN111078662B (zh) 一种区块链数据存储方法与装置
CN115810383A (zh) 基于read retry的拉偏电压选择实现方法和装置
US7356727B1 (en) Electronic device employing efficient fault tolerance
CN115620781A (zh) 用于固态硬盘的闪存控制器配置方法、装置、设备及介质
CN115878041A (zh) 固态硬盘raid写性能提升的实现方法、装置和计算机设备
CN115220967A (zh) 固态硬盘内存容错性提升方法、装置和计算机设备
WO2022257468A1 (zh) 对话管理系统更新方法、装置、计算机设备及存储介质
CN114356369A (zh) Ssd固件一致性加载方法、装置、计算机设备及存储介质
CN113687796A (zh) Io任务处理方法、装置和计算机设备和存储介质
JP4239754B2 (ja) 不揮発メモリシステム
CN114047880B (zh) 多Pass编程的NAND写入功耗优化方法、装置及计算机设备
CN110851072B (zh) 使用状态预测方法的固态储存装置
CN110275596A (zh) 基于固态硬盘的上电初始化加速方法、装置和计算机设备
CN113010338B (zh) 一种内存ce的漏错阈值调整方法、装置、设备及介质
CN109686394B (zh) Nand Flash Phy参数配置方法和装置
CN110795275A (zh) 基于异常掉电过程中的异常块识别方法和装置
CN114185620B (zh) 加速ssd固件加载实现方法、装置、计算机设备及存储介质
CN117850703A (zh) 提升固态硬盘重读效率的实现方法、装置和计算机设备
CN115472209A (zh) soft decode LDPC的硬件加速实现方法、装置和计算机设备
CN112596679B (zh) 固态硬盘的raid实现方法、装置、计算机设备及存储介质
CN117785048A (zh) 基于固态硬盘的加速重读实现方法、装置和计算机设备
CN116737451B (zh) 闪存的数据恢复方法及装置、固态硬盘、存储介质
CN111580844B (zh) 支持在轨动态更新的软硬件协同的应用程序维护方法
CN117912530A (zh) 基于nand失效下的重读实现方法、装置和计算机设备
CN115509451A (zh) 控制器适配多种nand颗粒的实现方法、装置和计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination