您现在的位置:首页 >> 污染防治

「计算机基础」9000 字图文详解 CPU 内存

时间:2024-01-16 12:19:47

这那时候有一个情况:如果一个教工作人员问一个颇为罕见的情况,您意味著从不曾问到了很多次,那么您意味著但会立即知道题目并且短时间内地问到他。这个教工作人员的情况就像 CPU 在执引目标时要时有次访问的数据资料和可执行。

如今结论这那时候还有一些教工作人员提出了不太罕见的情况,你在此之前从不曾问到过。对于这些情况,您意味著所需稍微认知一下,或者去沙发寻觅特别的资料,然后再给他们题目。这那时候的情况就比如说 CPU 在执引目标时所需次访问慢的磁盘,因为磁盘比较于 CPU 的更是极快慢。

CPU 线程就是一种像您的脑海那时候贮藏一些最罕见情况题目的小柜子。当教工作人员提出罕见情况时,您可以不断地从这个小柜子当中收出题目,而不必再去查想到或认知。这样,您可以更是极快地问到情况。完全相同地,CPU 线程是一个座落在 CPU 外部的小短时间磁盘储设备器,它贮藏着 CPU 时有次访问的数据资料和可执行。

通取而代之常用 CPU 线程,CPU 可以短时间内地从线程当中给与罕见数据资料和可执行,而不必每次都去次访问慢的磁盘。这样就节省了大量的间隔时间,进一步提高了集成电路的运引更是极快。而且,CPU 线程通时常总称多个行政组织,每个行政组织都有相异的大小和更是极快,就像您意味著有一个专门贮藏罕见情况题目的小柜子,还有一个稍大一点的柜子放着不那么罕见的情况题目。这样的的设计使得 CPU 线程很难更是佳地适应相异类型的目标,并共享更是高效的数据资料次访问形式。

所以,CPU 线程的意涵在于加极快 CPU 的运引更是极快,使集成电路很难更是极快地收尾各种目标,进一步提高我们的集成电路时常用体验。就像您作为家教能更是极快问到教工作人员情况一样,CPU 线程也让 CPU 更是不断地检视数据资料和可执行,使集成电路运引似乎高效。

考虑到的两个普遍性定律是就是指集成电路当中的两个极其重要原则上:间隔时间普遍性(Temporal Locality)和密闭普遍性(Spatial Locality)。这两个定律并能建模集成电路的机动性和生产成本。

间隔时间普遍性(Temporal Locality):这个定律就是指的是当集成电路次访问某个数据资料或可执行时,年中很意味著但会随即次访问完全相同的数据资料或可执行。最简单来说,如果你在来作某个目标时,即将时常用过的数据资料或可执行很意味著但会在随即后随即被时常用到。这个定律可以最最简单为你在读一本书时,即将阅读过的页面很意味著在年中的几页当中但会随即提及。

间隔时间普遍性的极其重要性在于,集成电路当中的线程系统的设计可以能用这个定律。当 CPU 次访问某个数据资料时,线程但会将这个数据资料存储设备在高速的线程当中,这样当 CPU 随即所需这个数据资料时,就可以从外部从线程当中写就入,而不必随即次访问快速的磁盘。这样可以极大地加极快数据资料的次访问更是极快,进一步提高集成电路的机动性。

密闭普遍性(Spatial Locality):这个定律就是指的是当集成电路次访问某个数据资料或可执行时,年中很意味著但会次访问与之毗连的数据资料或可执行。最简单来说,如果你在汇编沙发时,即将收出的一本书上去很意味著是你年中要汇编的书,因此你可以将这两本书摆在手边,以便更是极快地寻觅它们。

密闭普遍性的定律比方说适用范围于集成电路当中的线程系统的设计。当 CPU 次访问某个数据资料时,线程不仅但会将这个数据资料存储设备在线程当中,还但会将与之毗连的数据资料也存储设备慢慢地。这样,当 CPU 所需次访问毗连的数据资料时,可以从外部从线程当中给与,而不必随即次访问磁盘。这种预收毗连数据资料的形式比方说可以进一步提高集成电路的机动性,降低次访问磁盘的单次。

间隔时间普遍性和密闭普遍性原则上在集成电路当中作用了建模机动性和大大正因如此的作用。通过能用这两个原则上,线程系统的设计很难得出和存储设备 CPU 年中意味著次访问的数据资料和可执行,从而加极快数据资料的次访问更是极快,进一步提高集成电路的结构上运引生产成本。就像你在汇编沙发时可以立即将特别的书摆在一起,以便更是极快地寻觅它们一样。

二、CPU 的三级线程2.1 CPU 的三级线程

当谈到 CPU 线程时,通时常但会提及三个高级别的线程,即 L1 线程、L2 线程和L3 线程。让我们以所私立大学所学校的图书为例来理解这三个高级别的线程。

都是,你是一名教工作人员,你时常所需在图书阅读和返还出版物。如今呢,图书那时候有三个相异高级别的书库。

L1 线程就比如说你手边的小书库,下面摆放着你最时常用的出版物。这些出版物颇为相比之下你,因此你可以有趣而短时间内地收出它们并进引阅读。这就是为什么 L1 线程的次访问更是极快颇为极快的原因。它是 CPU 外部最极快的线程层,它存储设备着 CPU 最时常时常用的数据资料和可执行。

年中是 L2 线程,就比如说你的房间那时候的书库。这个书库比你手边的小书库大,可以贮藏更是多的出版物。虽然它离你的位置有顶多靠近,但你即便如此可以比较容易地给与你所需的出版物。这是因为 L2 线程座落在离 CPU 更是几倍但即便如此比较短时间内的位置,它可以存储设备比 L1 线程更是多的数据资料和可执行。

最后是 L3 线程,它就比如说整个所学校图书的大书库。这个书库颇为大,可以容纳大量的出版物。它离你的位置比较较几倍,所以给与出版物意味著所需总成本更是多的间隔时间。但是,由于它可以容纳更是多的出版物,所以即使它的更是极快比较慢,你即便如此可以在所需时寻觅你所需的出版物。L3 线程通时常座落在 CPU 芯片上,而且不是所有的检视器都有 L3 线程。

在这个图书的值得注意当中,你是 CPU,出版物是数据资料和可执行,而三个高级别的书库就是 CPU 线程的三个高级别。L1 线程是最极快、发电量总和的,L2 线程更是极快稍慢一些但发电量较小,而 L3 线程则较小发电量但更是极快比较慢。

为什么有这种数据模型的线程呢?因为更是靠近 CPU 的线程层次可以更是极快地次访问数据资料,但发电量受限制。如果所有数据资料都摆在最极快的 L1稍稍 存当中,那么发电量但会很极快不够。因此,慢但发电量较小的 L2 和 L3 线程就比如说带入的存储设备密闭,可以存储设备更是多的数据资料,尽管次访问更是极快稍慢。

总的来说,这三个高级别的线程密切相关了一种数据模型,以考虑到 CPU 对数据资料和可执行的相异次访问需求。通过这种数据模型,CPU 可以短时间内次访问时有时常用的数据资料和可执行,并在所需时逐级侧边查想到,从而进一步提高集成电路的结构上机动性。

下面是三级线程的检视更是极快概述注记:

左图是 Intel Core i5-4285U 的 CPU 三级线程示意图:

就像数据资料库线程一样,给与数据资料时首先为但会在最极快的线程当中想到数据资料,如果线程不曾命当中(Cache miss) 则往下一级想到, 直到三级线程都想到不到时,那只有向磁盘要数据资料了。一次次地不曾命当中,代注记人收数据资料可用的间隔时间越长。

2.2 近似于高速线程 CPU 执引量所谓的方式中

1、程序在以及数据资料被复制到到收纳磁盘。2、可执行和数据资料被复制到到 CPU 的高速线程。3、CPU 执引可执行,把结果写就到高速线程。4、高速线程当中的数据资料写就回收纳磁盘。

目前流引的多级线程结构如左图:

三、CPU 线程完整性协商(MESI)

当集成电路系统的设计当中有多个 CPU 同时次访问交换磁盘时,CPU 线程完整性协商(MESI)起着颇为极其重要的作用。MESI 是一种用作持续保持多个 CPU 线程当中数据资料完整性的协商。

有两个人(CPU)打算密切合作收尾一项目标,并且他们交换一张用纸(交换磁盘),下面所需记录一些个人信息。每个人都有自己的建议书(线程),他们可以在建议书上写就下他们所需的个人信息,并且可以随时概述建议书上的个人信息,而不必每次都去提示用纸上的内容。

如今,结论其当中一个人(CPU1)只想变更是用纸上的个人信息,他但会先为提示自己的建议书(线程),如果建议书上不曾这个个人信息,他就但会去提示另一个人(CPU2)的建议书(线程)。如果 CPU2 的建议书当中有这个个人信息,那么 CPU1 但会告诉 CPU2:“嘿,我要变更是这个个人信息,你的建议书当中的那个个人信息从不曾取而代之了。”然后 CPU2 但会把他的建议书上的个人信息标上为在先为,指出它从不曾取而代之了。

接着,CPU1 但会把他自己的建议书上的个人信息变更是为新的内容,并且将这个新的个人信息更是新到用纸上。然后他但会告诉 CPU2:“我从不曾变更是了用纸上的个人信息,你可以把你的建议书上的个人信息更是新为同类型的了。”这样,两个人的建议书和用纸上的个人信息就持续保持完全一致了。

MESI 协商就是通过完全相同的形式来持续保持多个 CPU 线程的数据资料完整性。每个 CPU 线程有四种状况:变更是(Modified)、商业性(Exclusive)、交换(Shared)和在先为(Invalid)。当一个CPU 要写就入或变更是交换磁盘当中的数据资料时,它首先为但会健康检查自己的线程当中的状况。如果数据资料在自己的线程当中是充分的且东南面交换状况,那么它可以从外部时常用线程当中的数据资料。如果数据资料在自己的线程当中在先为或者东南面商业性状况,那么它就所需向其他CPU传送请求,给与同类型的数据资料。

当一个 CPU 要变更是交换磁盘当中的数据资料时,它但会先为将线程当中的数据资料状况变更是为变更是状况,并且把这个变更是的消息传送给其他 CPU。其他 CPU 转交到这个消息后,但会将自己的线程当中近似于的数据资料状况变更是为在先为状况,指出它们的数据资料从不曾取而代之了。然后,变更是数据资料的 CPU 可以安全地更是新交换磁盘当中的数据资料,并且将其他 CPU 的线程当中近似于的数据资料状况变更是为在先为。

通过这种形式,MESI 协商保证了多个 CPU 错综复杂交换数据资料的完整性。它确保安全了在多个 CPU同时次访问交换磁盘时,数据资料的变更是很难正确地并行和更是新,避免了数据资料不完全一致的意味著会再次发生。就像两个人通过建议书和用纸张的协作来持续保持个人信息完全一致一样,MESI 协商通过 CPU 线程的状况变换和消息交互来持续保持多个 CPU 线程当中的数据资料完全一致。

3.1 MESI 协商当中的状况

在 MESI 协商当中,每个 CPU 线程的数据资料状况可以有注记列出四种状况:

变更是(Modified):当一个 CPU 将交换磁盘当中的数据资料复制到到自己的线程当中后,如果变更是了这个数据资料,那么该数据资料就东南面变更是状况。变更是状况指出该 CPU 是该数据资料的唯一的公司,并且数据资料与磁盘当中的数据资料不完全一致。如果其他 CPU 只想写就入或变更是该数据资料,所需先为与拥有变更是状况的 CPU 进引收发,确保安全数据资料的完整性。商业性(Exclusive):当一个 CPU 将交换磁盘当中的数据资料复制到到自己的线程当中后,如果不曾变更是该数据资料,那么该数据资料就东南面商业性状况。商业性状况指出该 CPU 是该数据资料的唯一的公司,但数据资料与磁盘当中的数据资料是完全一致的。其他 CPU 可以写就入该数据资料,但所需通过线程完整性协商来确保安全数据资料的完整性。交换(Shared):当多个 CPU 将交换磁盘当中的数据资料复制到到各自的线程当中后,且数据资料不曾被变更是,那么该数据资料就东南面交换状况。交换状况指出多个 CPU 交换该数据资料,并且数据资料与磁盘当中的数据资料是完全一致的。其他 CPU 可以写就入该数据资料,而不所需进引额外的收发。在先为(Invalid):当一个 CPU 将交换磁盘当中的数据资料复制到到自己的线程当中后,如果其他 CPU 从不曾变更是了该数据资料,那么该数据资料就东南面在先为状况。在先为状况指出该 CPU 的线程当中的数据资料已过期,不可用。当其他 CPU 所需写就入或变更是该数据资料时,能够先为与拥有同类型数据资料的 CPU 进引收发,给与同类型的数据资料。

这些状况的变换是根据 CPU 线程对数据资料的读写就操作方法以及与其他CPU错综复杂的收发来进引的。MESI 协商通过充分管理线程当中数据资料的状况,确保安全多个 CPU 错综复杂交换数据资料的完整性和确实。

CPU 当中每个线程引(Cache line)时常用4种状况进引标上,时常用 2bit 来指出:

比方说:对于M和E状况而言总是精确的,他们在和该线程引的真正状况是完全一致的,而S状况意味著是非完全一致的。如果一个线程将东南面S状况的线程引作废了,而另一个线程显然意味著从不曾给与了该线程引,但是该线程却不但会将该线程引升官为E状况,这是因为其它线程不但会卫星电视他们作登位该线程引的立即,比方说由于线程并不曾留有该线程引的copy的数量,因此(即使有这种立即)也不曾办法考虑到自己究竟从不曾给与了该线程引。

从下面的意涵看来E状况是一种投机性的建模:如果一个 CPU 想变更是一个东南面 S 状况的线程引,连接器外交事务所需将所有该线程引的 copy 替换成 invalid 状况,而变更是 E 状况的线程不所需时常用连接器外交事务。

MESI 状况变换图:

左图指出了当一个线程引(Cache line)的相应的状况的时候,另外一个线程引(Cache line)所需相应的状况。

举个示例:

结论 cache 1 当中有一个函数 x = 0 的 cache line 东南面 S 状况(交换)。那么其他拥有 x 函数的 cache 2、cache 3 等 x 的 Cache line 相应为 S 状况(交换)或者相应为 I 状况(在先为)。

3.2 多连锁反应线程协同操作方法

(1) 磁盘函数

结论有三个 CPU A、B、C,近似于三个线程分别是 cache a、b、c。在收纳磁盘当中注记述了 x 的摘录值为 0。

(2) 单连锁反应写就入

执引方式中是:

CPU A发信了一条可执行,从收纳磁盘当中写就入x。从收纳磁盘通过 bus 写就入到 CPU A 的线程当中(几倍端写就入 Remote read),这时该 Cache line 变更是为 E 状况(给与)。 (3) 双连锁反应写就入

执引方式中是:

CPU A 发信了一条可执行,从收纳磁盘当中写就入 x。CPU A 从收纳磁盘通过 bus 写就入到 cache a 当中并将该 Cache line 新设为 E 状况。CPU B 发信了一条可执行,从收纳磁盘当中写就入 x。CPU B 试图从收纳磁盘当中写就入 x 时,CPU A 侦测到了定址流血冲突。这时 CPU A 对特别数据资料来作出叛离。此时x存储设备于 cache a 和 cache b 当中,x在 chche a 和 cache b 当中都被新设为 S 状况(交换)。 (4) 变更是数据资料

执引方式中是:

CPU A 量所谓收尾北极星可执行所需变更是 x。CPU A 将 x 新设为 M 状况(变更是)并立即线程了 x 的 CPU B, CPU B 将本地 cache b 当中的 x 新设为 I 状况(在先为)。CPU A 对 x 进引赋值。 (5) 并行数据资料

那么执引方式中是:

CPU B 发信了要写就入 x 的可执行。CPU B 立即 CPU A,CPU A 将变更是后的数据资料并行到收纳磁盘时 cache a 变更是为 E(给与)CPU A 并行 CPU B 的 x,将 cache a 和并行后 cache b 当中的 x 新设为 S 状况(交换)。3.3 CPU 存储设备模型简介

当多个CPU 同时次访问线程当中的交换数据资料时,为了保证数据资料的完整性,带入了 MESI 协商。这个协商注记述了线程引的四种状况,用来指出数据资料在相异 CPU 的线程当中的状况。当一个 CPU 对线程进引写就入或写就入操作方法时,意味著但会造成线程当中的数据资料状况似乎不完全一致。为了克服这个情况,线程转换器所需国安局本地和几倍程操作方法,并对特别的线程引状况进引相应的变更是,以保证数据资料在多个线程错综复杂的完整性。

然而,保证线程完整性所需进引终端,而这个操作方法过程所需间隔时间。状况的连动但会带入更是多的过长,并且某些状况的连动所需特殊的检视,意味著但会漏出检视器的执引。这些情况但会给系统的设计的耐久性和机动性带来一些挑战。

为了克服这些情况,带入了存储设备线程(Store Buffer)和在先为数据流(Invalidate Queue)。存储设备线程是一种特殊的线程区域,用作不再存储设备快要写就入线程的数据资料。当 CPU 执引写就操作方法时,它将数据资料先为存储设备到存储设备线程当中,而不是从外部写就入线程。这样来作的好处是,CPU 可以继续执引后续的可执行,而不必赶紧写就操作方法收尾。存储设备线程但会在适合于的时机将数据资料写就入线程,并确保安全数据资料的完整性。

在先为数据流是用作检视在先为状况的线程引的数据流。当一个 CPU 将线程引标上为在先为时,它将该个人信息填充到在先为数据流当中。其他 CPU 可以健康检查在先为数据流,给与关于线程引状况的更是新个人信息,并进引相应的检视。

通过带入存储设备线程和在先为数据流,可以避免检视器因为赶紧几倍程线程状况的验证而被漏出,从而降低间隔时间的浪费。这样检视器可以继续执引其他可执行,进一步提高了机动性。

(1) 存储设备线程

在不曾存储设备线程的意味著会下,当CPU要写就入一个参数时,意味著但会面临注记列出意味著会:

如果这个参数不在 CPU 的线程当中,那么 CPU 所需传送一个讯号给其他构件,告诉它们所需写就入和受控(在先为所谓)这个参数的状况。然后 CPU 所需赶紧这个讯号的叛离,然后才能将这个参数写就入到线程当中。如果这个参数在 CPU 的线程当中,并且它的状况是商业性(Exclusive)的,那么 CPU 可以从外部变更是这个参数。如果这个参数在 CPU的线程当中,但它的状况是交换(Shared)的,那么 CPU 所需传送一个使其他 CPU 感知到这个更是改的讯号,然后赶紧其他 CPU 的叛离,然后才能进引变更是。

在这些意味著会下,很意味著但会关乎到 CPU 与其他 CPU 进引收发,并且所需赶紧它们的无论如何。这但会浪费很多步进周期。为了大大正因如此,可以转用异步的形式进引检视:首先为快要写就入的参数存储设备到一个需将(Buffer)当中,然北极星送收发讯号,赶紧讯号被叛离后,再将参数应用到线程当中。并且,这个需将还可以让 CPU 写就入参数。这个需将就是存储设备需将(Store Buffer)。而不所需赶紧对某个参数的写就入可执行收尾才继续执引下一条可执行,CPU 可以从外部从存储设备需将当中写就入这个参数的值。这种建模称为存储设备转发(Store Forwarding)。

简而言之,存储设备线程的作用是进一步提高 CPU 写就入数据资料时的生产成本。它通取而代之常用存储设备需将来不再存储设备待写就入的数据资料,异步地进引收发和操作方法,以降低 CPU 与其他构件错综复杂的赶紧间隔时间,从而进一步提高集成电路的结构上机动性。

(2) 在先为数据流

在多个 CPU 错综复杂进引数据资料并行时,一个 CPU 意味著但会传送一个"Invalidate"(使在先为)的讯号给其他 CPU,以立即它们某个特定的数据资料从不曾再次发生了变所谓。然而,如果转交到"Invalidate"讯号的 CPU 第一时间采收引动去与其他CPU并行数据资料,那么这个操作方法过程意味著但会造成比较长的步进周期过长。

为了克服这个情况,转交到"Invalidate"讯号的 CPU 并不但会第一时间采收引动,而是将这个"Invalidate"讯号加到一个叫来作"Invalidate Queue"(使在先为数据流)的数据流当中,并第一时间传送叛离讯号。等到适当的时机,CPU 再去检视这个"Invalidate Queue"当中的"Invalidate"讯号,并进引相应的检视操作方法。

换个形式解读,我们可以把这个操作方法过程最最简单成一个小区内的邮箱系统的设计。当有人给你寄来一封纸条("Invalidate"讯号),你并不但会第一时间停下先前的社会活动去检视它。显然,你但会将纸条加到你的个人邮箱("Invalidate Queue"),并第一时间无论如何传送方说你从不曾送达了。然后,当你有空闲间隔时间时,你但会去健康检查你的邮箱,并检视那时候面的纸条。

通取而代之常用"Invalidate Queue",CPU 可以似乎高效地检视转交到的"Invalidate"讯号,而不但会第一时间当中止举例来说的社会活动。这样,CPU 可以根据自己的间隔分阶段进引充分的控管,以仅有程度地进一步提高检视生产成本。

总之,通取而代之常用"Invalidate Queue",转交到"Invalidate"讯号的CPU可以在适合于的时机进引数据资料并行检视,而不但会第一时间当中止举例来说社会活动。这种建模方法可以降低步进周期过长,进一步提高 CPU 的结构上机动性。

四、乱序执引

集成电路外部有一个很极其重要的部分叫来作 CPU(当中央检视器),它是负责管理执引量所谓和可执行的连锁反应心。有一种属性叫来作乱序执引,它可以让CPU似乎高效地社会活动。乱序执引意味着 CPU 不必按照可执行在程序在当中的共五共五执引,而是根据意味著会启动时地重新汇编可执行的执引共五。

想象一下,您是一名名厨,身旁有一张菜谱,下面列着各种相异的烹调方式中。通时常意味著会下,您意味著但会按照菜谱上的共五,共五收尾每个方式中。但是,有时候某些方式中意味著但会租用不长间隔时间,例如赶紧水煮沸或者微波炉吸热。如果您按照菜谱的共五赶紧每个方式中收尾,意味著但会造成整个烹调操作方法过程似乎颇为慢。

这时,您意味著但会聪颖地转用乱序执引的形式。也就是说,您可以在赶紧某个方式中收尾的同时,开始来作其他不依赖于该方式中的社会活动。例如,您可以等待其他所需切出的食材,或者开始等待下一道菜的胶合板。这样,您很难似乎高效地能用间隔时间,使整个烹调操作方法过程更是极快收尾。

比方说地,CPU 的乱序执引也是为了更是高效地能用间隔时间。当 CPU 执引一条可执行时,有时但会察觉到所需赶紧某些数据资料等待完毕的意味著会。如果按照可执行在程序在当中的共五赶紧每个数据资料完毕,CPU 的生产率意味著但会降低。乱序执引强制 CPU 在赶紧某些数据资料完毕的同时,开始执引其他不依赖于这些数据资料的可执行。这样,CPU 就能似乎适当地能用间隔时间,进一步提高结构上的量所谓更是极快。

乱序执引所需 CPU 外部的一些人机控管和判别功能来立即可执行的执引共五。这些功能很难分析可执行错综复杂的依赖的关系,判别哪些可执行可以并引执引,以及在赶紧某些数据资料完毕时可以执引哪些其他可执行。通过乱序执引,CPU 很难更是佳地能用量所谓资源,进一步提高集成电路的机动性。

总而言之,乱序执引是 CPU 的一种人机属性,它使得 CPU 可以不按照可执行在程序在当中的共五共五执引,而是根据意味著会启动时重新汇编可执行的执引共五。这样可以更是高效地能用间隔时间,进一步提高集成电路的运引更是极快。就像名厨在烹调操作方法过程当中聪颖地事前社会活动共五一样,乱序执引让 CPU 似乎聪颖地检视可执行,使集成电路社会活动更是极快更是高效。

CPU 执引乱序收纳要有注记列出几种:

写就写就乱序(store store):a=1;b=2; -> b=2;a=1;写就读乱序(store load):a=1;load(b); -> load(b);a=1;读读乱序(load load):load(a);load(b); -> load(b);load(a);读写就乱序(load store):load(a);b=2; -> b=2;load(a);

总而言之,CPU 的乱序执引建模就是指的是检视器为进一步提高运算更是极快而来作出违背代码原有共五的建模。

评论是从:__biz=MzkwNTM1MTM1Mw==Simonmid=2247486126Simonidx=1Simonsn=4b5c56ed85515b98c2cc6ce6c2144eb8Simonchksm=c0f85378f78fda6e2473aa6fdafb627d63ec24ed90bc9c5f9f088312037bb65f73ef8b39e03cSimonscene=178Simoncur_album_id=2963520692149338119#rd

迈普新胸腺法新针剂的作用
再林阿莫西林胶囊治鼻炎有效果吗
眼睛酸痛怎么才能快速缓解
软组织挫伤很疼怎么办
痛风吃什么能缓解疼痛