欢迎光临
我们一直在努力

芯片开发学习笔记·十一——链表

一、链表的定义(软件层面)

链表是一种线性数据结构,由一系列节点(Node)组成,每个节点包含两部分:

  • 数据域:存储实际的数据元素。
  • 指针域:存储指向下一个节点的地址(或引用)。

链表通过指针将节点按顺序连接,形成逻辑上的线性序列,但物理存储上节点可以是分散的,可实现数据的非连续存放。

根据链表的概念,移植到硬件上,可实现数据队列的分散存储,通过链表实现数据队列重组输出。

二、链表硬件上的实现

我们需要将一组串行输入的离散数据,进行重组输出。同一组队列的数据,先重组完成完整整包的队列,先输出,释放存储空间。

1、我们需要准备

  • 一个数据的ram,用来存放数据队列的切片;
  • 一个数据ram状态位寄存器,用来指示每个数据ram地址的空闲状态,0为空闲,1为占用;
  • 一个链表ram,用来实现链表地址更新,初始状态下链表里的内容是下一个地址,最后一个地址的内容是0地址;
  • 一个id号深度的首地址ram,用来记录每个数据队列的第一个地址,得到数据的起始地址信息;
  • 一个id号深度的上一跳地址ram,用来记录该队列的上一个切片存放地址,用来更新链表用;
  • 一个链尾地址寄存器,用来更新链尾的地址,初始值是最高位地址;

2、写数据过程

<

赞(0)
未经允许不得转载:171主机测评 » 芯片开发学习笔记·十一——链表
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址