Zynq 7000 系列之启动模式—NAND启动

NAND启动是一种使用NAND闪存进行设备启动的方式。NAND闪存是一种非易失性存储设备,广泛用于嵌入式系统、计算机和其他电子设备中。由于NAND闪存具有高速读写和较高的存储密度等特点,使得NAND启动成为了一种高效且常用的启动方式。

1 特点

NAND启动具有以下特点:

• 支持8位或16位NAND闪存设备
• 支持ONFI 1.0设备协议
• 坏块支持
• 1位硬件ECC支持

对于BootROM Header搜索功能,启动映像必须位于NAND闪存设备的前128MB地址空间内。

注意:BootROM以8位模式读取符合ONFI规范的参数信息,以确定设备宽度。如果设备是16位宽,那么BootROM将启用上部的八个I/O信号以形成16位数据总线。然而,在7z010双核和7z007s单核CLG225设备中,并不提供16位NAND接口。

8位和16位启动模式下的MIO引脚编程列于表6-11中。
在这里插入图片描述
从上述内容可以看出,NAND启动支持8位和16位NAND闪存设备,并且BootROM会根据设备的宽度来配置相应的数据总线。对于16位设备,BootROM会启用额外的I/O信号以支持16位数据总线。不过,并非所有设备都支持16位NAND接口。

2 优化NAND启动时间

为了优化NAND启动时间,可以采取以下措施:

提高时钟速率
通过增加NAND闪存的工作时钟频率,可以显著提高数据传输速度,进而减少启动时间。如果使用了更快的时钟,必须考虑使用更大的分频器,以确保系统的稳定性和可靠性。

优化I/O协议
通过优化NAND闪存的I/O协议,可以进一步提高数据传输效率和响应速度。这通常涉及调整相关的寄存器设置,以匹配NAND设备的特性和工作模式。

示例(下表)中的寄存器值可能并不适用于所有NAND设备或板卡布局。这些设置假设使用的是33 MHz的PS_CLK(处理器系统时钟)。
在这里插入图片描述

3 BootROM操作

BootROM针对三种闪存设备情况作出响应:

• 坏块处理:BootROM能够识别并跳过标记为坏的闪存块,从而确保读取和写入操作不会受到坏块的影响。

• ECC(错误检查和纠正):用于检测和纠正数据传输过程中可能出现的错误。通过应用ECC算法,BootROM能够识别并修复由于位干扰引起的数据错误,提高了数据的准确性和可靠性。

• 分区内存:BootROM能够将闪存分成多个逻辑分区,每个分区可以独立管理和使用。这种分区方式不仅优化了闪存空间的利用,还提高了数据访问的效率。同时,BootROM在分区时还会考虑坏块的存在,确保每个分区都能够避免使用坏块,从而进一步提高系统的稳定性和可靠性。

3.1 坏块管理

在坏块管理方面,BootROM采用了以下方法:

• 在NAND闪存设备的最后四个块中查找坏块表(BBT)。
• 支持主BBT(bad block table)和次BBT,并带有版本控制,以便安全地进行软件更新。
• 如果没有BBT,BootROM会扫描闪存并读取带外(out-of-band)信息,以确定坏块的位置。

BootROM只执行读取操作,不向闪存写入数据。

在读取NAND闪存时,BootROM会跳过在BBT或带外信息中标记为坏的块(如果BBT不存在)。例如,考虑一个闪存设备,其坏块位于块1和块3。在将映像编程到闪存设备时,必须跳过块1和块3。在读取时,BootROM会读取遇到的好块中的完整用户数据。

在这里插入图片描述
3.2 ECC(错误检查和纠正)管理

NAND控制器具备硬件级别的ECC管理能力,能够处理一定位数的错误。当NAND控制器检测到数据传输中的错误时,它会利用ECC算法进行错误纠正。这种能力使得系统能够在一定程度上容忍闪存中的错误,提高了数据的可靠性。

此外,对于支持片上ECC(on-die ECC)的NAND设备,BootROM能够识别并禁用控制器的ECC检查功能。这样做是为了让NAND设备自身负责ECC的管理,从而充分利用设备内部的ECC能力。片上ECC通常具有更高的纠正能力和效率,能够更好地保护数据的完整性。

总之,ECC管理在NAND闪存系统中是一个复杂而关键的过程。通过合理配置和使用ECC功能,可以确保数据的准确性和可靠性,提高系统的稳定性和性能。在实际应用中,需要根据具体的硬件和软件环境来选择合适的ECC管理策略,以达到最佳的效果。

3.3 内存分区

BootROM将NAND闪存视为一个连续的分区。从用户的角度来看,这主要影响Multiboot寄存器。写入Multiboot寄存器的值会根据目标地址前的坏块数量进行偏移。

考虑下面这个例子:
镜像包含两个Multiboot部分,镜像总大小为1MB,块大小为128KB,第二个Multiboot部分从512KB处开始,坏块位于128KB和256KB的偏移处。

在这个场景中,镜像应该被编程为一个分区,这导致第二个Multiboot部分的偏移总量为256KB(即两个块的大小)。当写入Multiboot寄存器时,它可以设置为512KB的偏移量,而BootROM会负责根据坏块的位置计算新的起始地址。

通过这种方式,BootROM为用户提供了一个简化的接口,隐藏了底层NAND闪存中坏块的复杂性。用户不需要直接处理坏块,而是可以通过设置Multiboot寄存器来指示BootROM从哪里开始加载镜像的不同部分。BootROM会自动考虑坏块的存在,并计算出正确的起始地址。

4 I/O信号时序

BootROM在smc.SET_CYCLES寄存器中使用以下NAND时序值:

• t_rr = 2:准备就绪到就绪时间(Ready to Ready time),表示从NAND设备准备好接收命令到再次准备好接收下一个命令的时间间隔。

• t_ar = 2:地址设置时间(Address Setup time),表示从地址信号开始有效到命令信号开始有效的时间间隔。

• t_clr = 1:清除命令时间(Clear Command time),表示从命令信号变为无效到地址和数据信号开始或继续变化的时间间隔。

• t_wp = 3:写保护时间(Write Protect time),表示在写操作期间保护信号应保持有效的时间。

• t_rea = 2:读访问时间(Read Access time),表示从发出读命令到数据开始可用的时间间隔。

• t_wc = 5:写周期时间(Write Cycle time),表示完成一个写操作所需的时间,包括命令、地址和数据的传输。

• t_rc = 5:读周期时间(Read Cycle time),表示完成一个读操作所需的时间,包括命令、地址的传输和数据的读取。

这些时序值用于确保NAND闪存设备与BootROM之间的通信是正确和高效的。它们定义了各种操作所需的时间间隔,以确保数据在正确的时刻被发送和接收,从而避免数据冲突或丢失。通过正确设置这些时序值,可以优化NAND闪存的性能并减少潜在的错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/584278.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring】Spring中AOP的简介和基本使用,SpringBoot使用AOP

📝个人主页:哈__ 期待您的关注 一、AOP简介 AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。它是面向对象编程(OOP)的一种补充,目前已成为一种比较成…

Milvus Cloud 向量数据库Reranker成本比较和使用场景

成本比较:向量检索 v.s. Cross-encoder Reranker v.s. 大模型生成 虽然 Reranker 的使用成本远高于单纯使用向量检索的成本,但它仍然比使用 LLM 为同等数量文档生成答案的成本要低。在 RAG 架构中,Reranker 可以筛选向量搜索的初步结果,丢弃掉与查询相关性低的文档,从而有…

电商技术揭秘三十九:电商智能风控技术架构设计

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘二十八:安全与合规性保障 电商技术揭秘二十九:电商法律合规浅析 电商技术揭秘三十:知识产权保…

简单分享,豆瓣小组,可能被你忽视的获取精准流量渠道!

⾖瓣⼩组:精准流量的隐藏宝藏 探索互联网世界的每一个角落,你会发现总有那么一些被忽视的宝藏,等待着被发现者的光临。今天,我要和大家分享的这个宝藏,就是⾖瓣⼩组——一个你可能未曾注意到的精准流量渠道。 ⾖瓣平…

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包

本文来自:2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包 - 源码1688 应用介绍 简介: 2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包 自行检查后门,最好是部署智能合约后用合约地址来授权 包含转账支付页面盗U授…

蓝网科技临床浏览系统 deleteStudy SQL注入漏洞复现(CVE-2024-4257)

0x01 产品简介 蓝网科技临床浏览系统是一个专门用于医疗行业的软件系统,主要用于医生、护士和其他医疗专业人员在临床工作中进行信息浏览、查询和管理。 0x02 漏洞概述 蓝网科技临床浏览系统 deleteStudy接口处SQL注入漏洞,未经身份验证的恶意攻击者利用 SQL 注入漏洞获取…

HEVC/H.265视频编解码学习笔记–框架及块划分关系

前言 由于本人在学习视频的过程中,觉得分块单元太多搞不清楚其关系,因此本文着重记录这些分块单元的概念以及关联。 一、框架 视频为一帧一帧的图像,其编码的主要核心是压缩空间以及时间上的冗余。因此,视频编码有帧内预测和帧间…

TCP协议在物联网中实战

一、TCP协议介绍 网上对TCP协议介绍众多,本人按照自己的理解简单介绍一下。 TCP(Transmission Control Protocol, 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输控制层通信协议。 1.1 协议机制 1.1.1 三次握手 &…

面试重点1:打开网页点击URL,返回页面内容,从网络协议层面讲解一下

在这种场景下,从网络协议层面来讲解打开网页并点击 URL 的过程可以大致分为以下几个步骤: 1. DNS 解析 当你在浏览器中输入一个 URL(例如 https://www.example.com),首先浏览器会进行 DNS 解析,将域名解析…

前端VUE项目中使用async()用法是为什么?能不用吗?

使用 async 关键字来定义一个函数主要有几个原因: 支持 await 关键字: async 函数允许你在其中使用 await 关键字,这使得你可以在不阻塞程序执行的情况下,等待一个异步操作(如网络请求、文件读写等)的完成。…

JAVA基础---Stream流

Stream流出现背景 背景 在Java8之前,通常用 fori、for each 或者 Iterator 迭代来重排序合并数据,或者通过重新定义 Collections.sorts的 Comparator 方法来实现,这两种方式对 大数量系统来说,效率不理想。 Java8 中添加了一个…

Python量化炒股的获取数据函数—get_concept()

查询股票所属的概念板块函数get_concept(),利用该函数可以查询一只或多只股票所属的概念板块,其语法格式如下: get_concept(security, dateNone)security:标的代码。类型为字符串,形式如‘000001.XSHE’,或…

邦注科技 模具清洗机 干冰清洗机 干冰清洗设备原理介绍

干冰清洗机,这款神奇的清洁设备,以干冰颗粒——固态的二氧化碳,作为其独特的清洁介质。它的工作原理可谓独具匠心,利用高压空气将干冰颗粒推送至超音速的速度,犹如一颗颗银色的流星,疾速喷射至待清洗的物体…

攻防世界XCTF-WEB入门12题解题报告

WEB入门题比较适合信息安全专业大一学生,难度低上手快,套路基本都一样 需要掌握: 基本的PHP、Python、JS语法基本的代理BurpSuite使用基本的HTTP请求交互过程基本的安全知识(Owasp top10) 先人一步,掌握W…

基准测试函数表达式--单峰函数与多峰函数

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

SSH和Telnet的区别

SSH(Secure Shell)和Telnet是两种网络协议,用于远程登录和管理计算机系统。但是它们有以下几个主要的区别: 安全性:SSH是一种加密的协议,可以向服务器传输加密的数据,以防止数据被窃听或篡改。而…

Arcade 用户界面滚动文本框

代码 import arcade from arcade import load_texture from arcade.gui import UIManager from arcade.gui.widgets import UITextArea, UIInputText, UITexturePaneLOREM_IPSUM ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget pellentesqu…

探索互联网医院系统源码:在线问诊小程序开发教学

在线问诊小程序作为互联网医院系统的重要组成部分,为患者提供了更便捷、高效的医疗服务,成为了人们生活中不可或缺的一部分。今天,小编将带您探索互联网医院系统的源码,并介绍在线问诊小程序的开发教学,带领读者深入了…

【优质书籍推荐】Vue.js 3.x+Element Plus从入门到精通

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

JavaScript+C#云LIS系统源码JQuery+EasyUI+Bootstrap云LIS系统应用于哪些行业领域?区域云LIS系统源码

JavaScriptC#云LIS系统源码JQueryEasyUIBootstrap云LIS系统应用于哪些行业领域?区域云LIS系统源码 云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序,可协助区域内所有临床实验室相互协调并完成日常检验工作,对区域内的检…