From nobody Sat Feb 7 13:41:34 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C989944F; Thu, 25 Dec 2025 01:40:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766626836; cv=none; b=VNt6jcOvdPAdIvVzNm9MOMxxNoJ4zxioTGdUr5SqQG8X/0lNo/YTApwt6HkEKK6/8IQZdtjNf5gHak29mjIOOwpRlr6LsXXMDlVpqHDliOiSrRcybySb8fJIQ5v4y7EGxCuWapB1hinj6DG3gj0VTdYhSKX41K2/qw89w8wyBXM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766626836; c=relaxed/simple; bh=FKdVR7ThN5aMtw8dImsHeym4fLsh7oCYFAmC9e0exGY=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=bPAZaQ+1kger/IA6DSzzSUbq6rZkkHp7Etnw6XblV/ZkOCuJo+5qBBFBA6Fnk/ekfA120su9CI7Q/b7sxfqfGnnU3MFeXTJj2OeV0VG5V3W7+xaWvTTkhDySgLN5hZTouAGhMODHE/LURFURCNU3WBu5b9FWh7CdWU4MnkL3i0I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BV3rak+F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BV3rak+F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC1EBC4CEF7; Thu, 25 Dec 2025 01:40:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1766626835; bh=FKdVR7ThN5aMtw8dImsHeym4fLsh7oCYFAmC9e0exGY=; h=From:To:Cc:Subject:Date:From; b=BV3rak+F1v7BfuusuXP3XjcoV52WnwW59dKBrL6Vk9MJzLKqGCqsG96ASxRjnVOb2 5RRrhysB7KOovZo3MT456chZDaQPcbXUeAPw5ZPD+v4YvVjQFohp06I4udCZWkz8bV vRl/7B08aQmZ7LPO39PTbKiZmMUP8raaUVuv3k8G1N1terqebeJQP24XGoKTA9ZQwe 4dnYDnQEi8oHs//11aDtPHU5GhGoVq5e9NlNg2hlTIDtHJUvXANt0Ca04KkMza+lY0 QaEw66l8HHi5lMnWL7/C/tEAE4dNKQTi+rx3iVimE0BqewkwnpQxH1fcPEt8Hv7hpq gnkYt7tOqWPtQ== From: SeongJae Park To: Jonathan Corbet Cc: SeongJae Park , "Paul E. McKenney" , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] Docs/translations/ko_KR: remove memory-barriers Date: Wed, 24 Dec 2025 17:40:22 -0800 Message-ID: <20251225014027.15948-1-sj@kernel.org> X-Mailer: git-send-email 2.47.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The memory-barriers.txt Korean translation is quite outdated. The last update on the translation was made on 2022-10-10, by commit ee5a86f451f7 ("docs/memory-barriers.txt/kokr: Fix confusing name of 'data dependency barrier'"). After the date, the original memory-barriers.txt got seven more changes so far. The most recent one was made on 2025-11-05. But none of those are applied to the translation. Maybe I can work again on keeping it updated. But, given the advancement of translation tools, I think it might not be worth keeping it at all. Remove the outdated translation. If it turns out to be worthy to keep the translation and someone willing to keep it updated steps up, this could be reverted. This change was inspired from the last kernel summit discussion [1]. [1] https://lpc.events/event/19/contributions/2259/ Cc: "Paul E. McKenney" Signed-off-by: SeongJae Park Acked-by: Paul E. McKenney --- .../core-api/wrappers/memory-barriers.rst | 18 - Documentation/translations/ko_KR/index.rst | 1 - .../translations/ko_KR/memory-barriers.txt | 2952 ----------------- 3 files changed, 2971 deletions(-) delete mode 100644 Documentation/translations/ko_KR/core-api/wrappers/memo= ry-barriers.rst delete mode 100644 Documentation/translations/ko_KR/memory-barriers.txt diff --git a/Documentation/translations/ko_KR/core-api/wrappers/memory-barr= iers.rst b/Documentation/translations/ko_KR/core-api/wrappers/memory-barrie= rs.rst deleted file mode 100644 index 526ae534dd86..000000000000 --- a/Documentation/translations/ko_KR/core-api/wrappers/memory-barriers.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - This is a simple wrapper to bring memory-barriers.txt into the RST world - until such a time as that file can be converted directly. - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90 =EB=A9=94=EB=AA=A8=EB=A6=AC= =EB=B0=B0=EB=A6=AC=EC=96=B4 -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D - -.. raw:: latex - - \footnotesize - -.. include:: ../../memory-barriers.txt - :literal: - -.. raw:: latex - - \normalsize diff --git a/Documentation/translations/ko_KR/index.rst b/Documentation/tra= nslations/ko_KR/index.rst index a20772f9d61c..b788462d08e4 100644 --- a/Documentation/translations/ko_KR/index.rst +++ b/Documentation/translations/ko_KR/index.rst @@ -12,7 +12,6 @@ :maxdepth: 1 =20 process/howto - core-api/wrappers/memory-barriers.rst =20 .. raw:: latex =20 diff --git a/Documentation/translations/ko_KR/memory-barriers.txt b/Documen= tation/translations/ko_KR/memory-barriers.txt deleted file mode 100644 index 7165927a708e..000000000000 --- a/Documentation/translations/ko_KR/memory-barriers.txt +++ /dev/null @@ -1,2952 +0,0 @@ -NOTE: -This is a version of Documentation/memory-barriers.txt translated into Kor= ean. -This document is maintained by SeongJae Park . -If you find any difference between this document and the original file or -a problem with the translation, please contact the maintainer of this file. - -Please also note that the purpose of this file is to be easier to -read for non English (read: Korean) speakers and is not intended as -a fork. So if you have any comments or updates for this file please -update the original English file first. The English version is -definitive, and readers should look there if they have any doubt. - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D -=EC=9D=B4 =EB=AC=B8=EC=84=9C=EB=8A=94 -Documentation/memory-barriers.txt -=EC=9D=98 =ED=95=9C=EA=B8=80 =EB=B2=88=EC=97=AD=EC=9E=85=EB=8B=88=EB=8B=A4. - -=EC=97=AD=EC=9E=90=EF=BC=9A =EB=B0=95=EC=84=B1=EC=9E=AC -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D - - - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D - =EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90 =EB=A9=94=EB=AA=A8=EB= =A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D - -=EC=A0=80=EC=9E=90: David Howells - Paul E. McKenney - Will Deacon - Peter Zijlstra - -=3D=3D=3D=3D=3D=3D=3D=3D -=EB=A9=B4=EC=B1=85=EC=A1=B0=ED=95=AD -=3D=3D=3D=3D=3D=3D=3D=3D - -=EC=9D=B4 =EB=AC=B8=EC=84=9C=EB=8A=94 =EB=AA=85=EC=84=B8=EC=84=9C=EA=B0=80= =EC=95=84=EB=8B=99=EB=8B=88=EB=8B=A4; =EC=9D=B4 =EB=AC=B8=EC=84=9C=EB=8A= =94 =EC=99=84=EB=B2=BD=ED=95=98=EC=A7=80 =EC=95=8A=EC=9D=80=EB=8D=B0, =EA= =B0=84=EA=B2=B0=EC=84=B1=EC=9D=84 =EC=9C=84=ED=95=B4 =EC=9D=98=EB=8F=84=EB= =90=9C -=EB=B6=80=EB=B6=84=EB=8F=84 =EC=9E=88=EA=B3=A0, =EC=9D=98=EB=8F=84=ED=95= =98=EC=A7=84 =EC=95=8A=EC=95=98=EC=A7=80=EB=A7=8C =EC=82=AC=EB=9E=8C=EC=97= =90 =EC=9D=98=ED=95=B4 =EC=93=B0=EC=98=80=EB=8B=A4=EB=B3=B4=EB=8B=88 =EB=B6= =88=EC=99=84=EC=A0=84=ED=95=9C =EB=B6=80=EB=B6=84=EB=8F=84 =EC=9E=88=EC=8A= =B5=EB=8B=88=EB=8B=A4. -=EC=9D=B4 =EB=AC=B8=EC=84=9C=EB=8A=94 =EB=A6=AC=EB=88=85=EC=8A=A4=EC=97=90= =EC=84=9C =EC=A0=9C=EA=B3=B5=ED=95=98=EB=8A=94 =EB=8B=A4=EC=96=91=ED=95=9C = =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=84 = =EC=82=AC=EC=9A=A9=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=9C -=EC=95=88=EB=82=B4=EC=84=9C=EC=9E=85=EB=8B=88=EB=8B=A4=EB=A7=8C, =EB=AD=94= =EA=B0=80 =EC=9D=B4=EC=83=81=ED=95=98=EB=8B=A4 =EC=8B=B6=EC=9C=BC=EB=A9=B4 = (=EA=B7=B8=EB=9F=B0=EA=B2=8C =EB=A7=8E=EC=9D=84 =EA=B2=81=EB=8B=88=EB=8B=A4= ) =EC=A7=88=EB=AC=B8=EC=9D=84 =EB=B6=80=ED=83=81=EB=93=9C=EB=A6=BD=EB=8B=88= =EB=8B=A4. -=EC=9D=BC=EB=B6=80 =EC=9D=B4=EC=83=81=ED=95=9C =EC=A0=90=EB=93=A4=EC=9D=80= =EA=B3=B5=EC=8B=9D=EC=A0=81=EC=9D=B8 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=9D=BC= =EA=B4=80=EC=84=B1 =EB=AA=A8=EB=8D=B8=EA=B3=BC tools/memory-model/ =EC=97= =90 =EC=9E=88=EB=8A=94 -=EA=B4=80=EB=A0=A8 =EB=AC=B8=EC=84=9C=EB=A5=BC =EC=B0=B8=EA=B3=A0=ED=95=B4= =EC=84=9C =ED=95=B4=EA=B2=B0=EB=90=A0 =EC=88=98 =EC=9E=88=EC=9D=84 =EA=B2= =81=EB=8B=88=EB=8B=A4. =EA=B7=B8=EB=9F=AC=EB=82=98, =EC=9D=B4 =EB=A9=94=EB= =AA=A8=EB=A6=AC =EB=AA=A8=EB=8D=B8=EC=A1=B0=EC=B0=A8=EB=8F=84 =EA=B7=B8 -=EA=B4=80=EB=A6=AC=EC=9E=90=EB=93=A4=EC=9D=98 =EC=9D=98=EA=B2=AC=EC=9D=98 = =EC=A7=91=ED=95=A9=EC=9C=BC=EB=A1=9C =EB=B4=90=EC=95=BC=EC=A7=80, =EC=A0=88= =EB=8C=80 =EC=98=B3=EC=9D=80 =EC=98=88=EC=96=B8=EC=9E=90=EB=A1=9C =EC=8B=A0= =EB=B4=89=ED=95=B4=EC=84=A0 =EC=95=88=EB=90=A0 =EA=B2=81=EB=8B=88=EB=8B=A4. - -=EB=8B=A4=EC=8B=9C =EB=A7=90=ED=95=98=EC=A7=80=EB=A7=8C, =EC=9D=B4 =EB=AC= =B8=EC=84=9C=EB=8A=94 =EB=A6=AC=EB=88=85=EC=8A=A4=EA=B0=80 =ED=95=98=EB=93= =9C=EC=9B=A8=EC=96=B4=EC=97=90 =EA=B8=B0=EB=8C=80=ED=95=98=EB=8A=94 =EC=82= =AC=ED=95=AD=EC=97=90 =EB=8C=80=ED=95=9C =EB=AA=85=EC=84=B8=EC=84=9C=EA=B0= =80 -=EC=95=84=EB=8B=99=EB=8B=88=EB=8B=A4. - -=EC=9D=B4 =EB=AC=B8=EC=84=9C=EC=9D=98 =EB=AA=A9=EC=A0=81=EC=9D=80 =EB=91= =90=EA=B0=80=EC=A7=80=EC=9E=85=EB=8B=88=EB=8B=A4: - - (1) =EC=96=B4=EB=96=A4 =ED=8A=B9=EC=A0=95 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC= =97=90 =EB=8C=80=ED=95=B4 =EA=B8=B0=EB=8C=80=ED=95=A0 =EC=88=98 =EC=9E=88= =EB=8A=94 =EC=B5=9C=EC=86=8C=ED=95=9C=EC=9D=98 =EA=B8=B0=EB=8A=A5=EC=9D=84 = =EB=AA=85=EC=84=B8=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4=EC=84=9C, - =EA=B7=B8=EB=A6=AC=EA=B3=A0 - - (2) =EC=82=AC=EC=9A=A9 =EA=B0=80=EB=8A=A5=ED=95=9C =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=93=A4=EC=97=90 =EB=8C=80=ED=95=B4 =EC=96=B4=EB=96=BB=EA=B2=8C =EC= =82=AC=EC=9A=A9=ED=95=B4=EC=95=BC =ED=95=98=EB=8A=94=EC=A7=80=EC=97=90 =EB= =8C=80=ED=95=9C =EC=95=88=EB=82=B4=EB=A5=BC =EC=A0=9C=EA=B3=B5=ED=95=98=EA= =B8=B0 - =EC=9C=84=ED=95=B4=EC=84=9C. - -=EC=96=B4=EB=96=A4 =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90=EB=8A=94 =ED=8A=B9= =EC=A0=95=ED=95=9C =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=97=90 =EB=8C=80= =ED=95=B4=EC=84=9C=EB=8A=94 =EC=97=AC=EA=B8=B0=EC=84=9C =EC=9D=B4=EC=95=BC= =EA=B8=B0=ED=95=98=EB=8A=94 =EC=B5=9C=EC=86=8C=ED=95=9C=EC=9D=98 -=EC=9A=94=EA=B5=AC=EC=82=AC=ED=95=AD=EB=93=A4=EB=B3=B4=EB=8B=A4 =EB=A7=8E= =EC=9D=80 =EA=B8=B0=EB=8A=A5=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=A0 =EC=88=98= =EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4=EB=A7=8C, =EC=97=AC=EA=B8=B0= =EC=84=9C =EC=9D=B4=EC=95=BC=EA=B8=B0=ED=95=98=EB=8A=94 -=EC=9A=94=EA=B5=AC=EC=82=AC=ED=95=AD=EB=93=A4=EC=9D=84 =EC=B6=A9=EC=A1=B1= =ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94 =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90= =EA=B0=80 =EC=9E=88=EB=8B=A4=EB=A9=B4 =EA=B7=B8 =EC=95=84=ED=82=A4=ED=85=8D= =EC=B3=90=EA=B0=80 =EC=9E=98=EB=AA=BB=EB=90=9C =EA=B2=83=EC=9D=B4=EB=9E=80 = =EC=A0=90=EC=9D=84 -=EC=95=8C=EC=95=84=EB=91=90=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88= =EB=8B=A4. - -=EB=98=90=ED=95=9C, =ED=8A=B9=EC=A0=95 =EC=95=84=ED=82=A4=ED=85=8D=EC=B3= =90=EC=97=90=EC=84=9C =EC=9D=BC=EB=B6=80 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A= =94 =ED=95=B4=EB=8B=B9 =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90=EC=9D=98 =ED=8A= =B9=EC=88=98=ED=95=9C =EB=8F=99=EC=9E=91 =EB=B0=A9=EC=8B=9D=EC=9C=BC=EB=A1= =9C =EC=9D=B8=ED=95=B4 -=ED=95=B4=EB=8B=B9 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 =EB=AA=85=EC=8B=9C= =EC=A0=81 =EC=82=AC=EC=9A=A9=EC=9D=B4 =EB=B6=88=ED=95=84=EC=9A=94=ED=95=B4= =EC=84=9C no-op =EC=9D=B4 =EB=90=A0=EC=88=98=EB=8F=84 =EC=9E=88=EC=9D=8C=EC= =9D=84 =EC=95=8C=EC=95=84=EB=91=90=EC=8B=9C=EA=B8=B0 -=EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. - -=EC=97=AD=EC=9E=90: =EB=B3=B8 =EB=B2=88=EC=97=AD =EC=97=AD=EC=8B=9C =EC=99= =84=EB=B2=BD=ED=95=98=EC=A7=80 =EC=95=8A=EC=9D=80=EB=8D=B0, =EC=9D=B4 =EC= =97=AD=EC=8B=9C =EB=B6=80=EB=B6=84=EC=A0=81=EC=9C=BC=EB=A1=9C=EB=8A=94 =EC= =9D=98=EB=8F=84=EB=90=9C =EA=B2=83=EC=9D=B4=EA=B8=B0=EB=8F=84 -=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=97=AC=ED=83=80 =EA=B8=B0=EC=88=A0 =EB=AC= =B8=EC=84=9C=EB=93=A4=EC=9D=B4 =EA=B7=B8=EB=A0=87=EB=93=AF =EC=99=84=EB=B2= =BD=ED=95=9C =EC=9D=B4=ED=95=B4=EB=A5=BC =EC=9C=84=ED=95=B4=EC=84=9C=EB=8A= =94 =EB=B2=88=EC=97=AD=EB=AC=B8=EA=B3=BC =EC=9B=90=EB=AC=B8=EC=9D=84 =ED=95= =A8=EA=BB=98 -=EC=9D=BD=EC=9C=BC=EC=8B=9C=EB=90=98 =EB=B2=88=EC=97=AD=EB=AC=B8=EC=9D=84 = =ED=95=98=EB=82=98=EC=9D=98 =EA=B0=80=EC=9D=B4=EB=93=9C=EB=A1=9C =ED=99=9C= =EC=9A=A9=ED=95=98=EC=8B=9C=EA=B8=B8 =EC=B6=94=EC=B2=9C=EB=93=9C=EB=A6=AC= =EB=A9=B0, =EB=B0=9C=EA=B2=AC=EB=90=98=EB=8A=94 =EC=98=A4=EC=97=AD =EB=93= =B1=EC=97=90 -=EB=8C=80=ED=95=B4=EC=84=9C=EB=8A=94 =EC=96=B8=EC=A0=9C=EB=93=A0 =EC=9D=98= =EA=B2=AC=EC=9D=84 =EB=B6=80=ED=83=81=EB=93=9C=EB=A6=BD=EB=8B=88=EB=8B=A4. = =EA=B3=BC=ED=95=9C =EB=B2=88=EC=97=AD=EC=9C=BC=EB=A1=9C =EC=9D=B8=ED=95=9C= =EC=98=A4=ED=95=B4=EB=A5=BC =EC=B5=9C=EC=86=8C=ED=99=94=ED=95=98=EA=B8=B0 = =EC=9C=84=ED=95=B4 -=EC=95=A0=EB=A7=A4=ED=95=9C =EB=B6=80=EB=B6=84=EC=9D=B4 =EC=9E=88=EC=9D=84= =EA=B2=BD=EC=9A=B0=EC=97=90=EB=8A=94 =EC=96=B4=EC=83=89=ED=95=A8=EC=9D=B4 = =EC=9E=88=EB=8D=94=EB=9D=BC=EB=8F=84 =EC=9B=90=EB=9E=98=EC=9D=98 =EC=9A=A9= =EC=96=B4=EB=A5=BC =EC=B0=A8=EC=9A=A9=ED=95=A9=EB=8B=88=EB=8B=A4. - - -=3D=3D=3D=3D=3D -=EB=AA=A9=EC=B0=A8: -=3D=3D=3D=3D=3D - - (*) =EC=B6=94=EC=83=81 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC= =8A=A4 =EB=AA=A8=EB=8D=B8. - - - =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98. - - =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD. - - (*) =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=9E=80 =EB= =AC=B4=EC=97=87=EC=9D=B8=EA=B0=80? - - - =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 = =EC=A2=85=EB=A5=98. - - =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=97=90 = =EB=8C=80=ED=95=B4 =EA=B0=80=EC=A0=95=ED=95=B4=EC=84=A0 =EC=95=88=EB=90=A0 = =EA=B2=83. - - =EC=A3=BC=EC=86=8C =EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=9D=98=EC=A1=B4= =EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4 (=EC=97=AD=EC=82=AC=EC=A0=81). - - =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1. - - SMP =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=A7=9D=EB=A7=9E=EC=B6=94=EA=B8= =B0. - - =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=8B=9C= =ED=80=80=EC=8A=A4=EC=9D=98 =EC=98=88. - - =EC=9D=BD=EA=B8=B0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC= =EC=96=B4 vs =EB=A1=9C=EB=93=9C =EC=98=88=EC=B8=A1. - - Multicopy =EC=9B=90=EC=9E=90=EC=84=B1. - - (*) =EB=AA=85=EC=8B=9C=EC=A0=81 =EC=BB=A4=EB=84=90 =EB=B0=B0=EB=A6=AC=EC= =96=B4. - - - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4. - - CPU =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4. - - (*) =EC=95=94=EB=AC=B5=EC=A0=81 =EC=BB=A4=EB=84=90 =EB=A9=94=EB=AA=A8=EB= =A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4. - - - =EB=9D=BD Acquisition =ED=95=A8=EC=88=98. - - =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =EB=B9=84=ED=99=9C=EC=84=B1=ED= =99=94 =ED=95=A8=EC=88=98. - - =EC=8A=AC=EB=A6=BD=EA=B3=BC =EC=9B=A8=EC=9D=B4=ED=81=AC=EC=97=85 = =ED=95=A8=EC=88=98. - - =EA=B7=B8=EC=99=B8=EC=9D=98 =ED=95=A8=EC=88=98=EB=93=A4. - - (*) CPU =EA=B0=84 ACQUIRING =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 =ED=9A= =A8=EA=B3=BC. - - - Acquire vs =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4. - - (*) =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =ED= =95=84=EC=9A=94=ED=95=9C =EA=B3=B3 - - - =ED=94=84=EB=A1=9C=EC=84=B8=EC=84=9C=EA=B0=84 =EC=83=81=ED=98=B8 = =EC=9E=91=EC=9A=A9. - - =EC=96=B4=ED=86=A0=EB=AF=B9 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC= =85=98. - - =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4 =EC=95=A1=EC=84=B8=EC=8A=A4. - - =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8. - - (*) =EC=BB=A4=EB=84=90 I/O =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 =ED=9A=A8= =EA=B3=BC. - - (*) =EA=B0=80=EC=A0=95=EB=90=98=EB=8A=94 =EA=B0=80=EC=9E=A5 =EC=99=84=ED= =99=94=EB=90=9C =EC=8B=A4=ED=96=89 =EC=88=9C=EC=84=9C =EB=AA=A8=EB=8D=B8. - - (*) CPU =EC=BA=90=EC=8B=9C=EC=9D=98 =EC=98=81=ED=96=A5. - - - =EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80=EC=84=B1. - - =EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80=EC=84=B1 vs DMA. - - =EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80=EC=84=B1 vs MMIO. - - (*) CPU =EB=93=A4=EC=9D=B4 =EC=A0=80=EC=A7=80=EB=A5=B4=EB=8A=94 =EC=9D=BC= =EB=93=A4. - - - =EA=B7=B8=EB=A6=AC=EA=B3=A0, Alpha =EA=B0=80 =EC=9E=88=EB=8B=A4. - - =EA=B0=80=EC=83=81 =EB=A8=B8=EC=8B=A0 =EA=B2=8C=EC=8A=A4=ED=8A=B8. - - (*) =EC=82=AC=EC=9A=A9 =EC=98=88. - - - =EC=88=9C=ED=99=98=EC=8B=9D =EB=B2=84=ED=8D=BC. - - (*) =EC=B0=B8=EA=B3=A0 =EB=AC=B8=ED=97=8C. - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -=EC=B6=94=EC=83=81 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4= =EB=AA=A8=EB=8D=B8 -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -=EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =EC=B6=94=EC=83=81=ED=99=94= =EB=90=9C =EC=8B=9C=EC=8A=A4=ED=85=9C =EB=AA=A8=EB=8D=B8=EC=9D=84 =EC=83=9D= =EA=B0=81=ED=95=B4 =EB=B4=85=EC=8B=9C=EB=8B=A4: - - : : - : : - : : - +-------+ : +--------+ : +-------+ - | | : | | : | | - | | : | | : | | - | CPU 1 |<----->| Memory |<----->| CPU 2 | - | | : | | : | | - | | : | | : | | - +-------+ : +--------+ : +-------+ - ^ : ^ : ^ - | : | : | - | : | : | - | : v : | - | : +--------+ : | - | : | | : | - | : | | : | - +---------->| Device |<----------+ - : | | : - : | | : - : +--------+ : - : : - -=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=EC=9D=80 =EC=97=AC=EB=9F=AC =EB=A9=94= =EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4 =EC=98=A4=ED=8D=BC=EB=A0=88= =EC=9D=B4=EC=85=98=EC=9D=84 =EB=B0=9C=EC=83=9D=EC=8B=9C=ED=82=A4=EA=B3=A0, = =EA=B0=81=EA=B0=81=EC=9D=98 CPU =EB=8A=94 =EA=B7=B8=EB=9F=B0 -=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=EB=93=A4=EC=9D=84 =EC=8B=A4=ED=96=89= =ED=95=A9=EB=8B=88=EB=8B=A4. =EC=B6=94=EC=83=81=ED=99=94=EB=90=9C CPU =EB= =AA=A8=EB=8D=B8=EC=97=90=EC=84=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED= =8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=98 =EC=88=9C=EC=84=9C=EB= =8A=94 -=EB=A7=A4=EC=9A=B0 =EC=99=84=ED=99=94=EB=90=98=EC=96=B4 =EC=9E=88=EA=B3=A0= , CPU =EB=8A=94 =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=EC=9D=B4 =EC=9D=B8=EA= =B3=BC=EA=B4=80=EA=B3=84=EB=A5=BC =EC=96=B4=EA=B8=B0=EC=A7=80 =EC=95=8A=EB= =8A=94 =EC=83=81=ED=83=9C=EB=A1=9C =EA=B4=80=EB=A6=AC=EB=90=9C=EB=8B=A4=EA= =B3=A0 -=EB=B3=B4=EC=9D=BC =EC=88=98=EB=A7=8C =EC=9E=88=EB=8B=A4=EB=A9=B4 =EB=A9= =94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D= =84 =EC=9E=90=EC=8B=A0=EC=9D=B4 =EC=9B=90=ED=95=98=EB=8A=94 =EC=96=B4=EB=96= =A4 =EC=88=9C=EC=84=9C=EB=8C=80=EB=A1=9C=EB=93=A0 =EC=9E=AC=EB=B0=B0=EC=B9= =98=ED=95=B4 -=EB=8F=99=EC=9E=91=EC=8B=9C=ED=82=AC =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88= =EB=8B=A4. =EB=B9=84=EC=8A=B7=ED=95=98=EA=B2=8C, =EC=BB=B4=ED=8C=8C=EC=9D= =BC=EB=9F=AC =EB=98=90=ED=95=9C =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=EC=9D= =98 =EC=A0=95=EC=83=81=EC=A0=81 =EB=8F=99=EC=9E=91=EC=9D=84 =ED=95=B4=EC=B9= =98=EC=A7=80 -=EC=95=8A=EB=8A=94 =ED=95=9C=EB=8F=84 =EB=82=B4=EC=97=90=EC=84=9C=EB=8A=94= =EC=96=B4=EB=96=A4 =EC=88=9C=EC=84=9C=EB=A1=9C=EB=93=A0 =EC=9E=90=EC=8B=A0= =EC=9D=B4 =EC=9B=90=ED=95=98=EB=8A=94 =EB=8C=80=EB=A1=9C =EC=9D=B8=EC=8A=A4= =ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=84 =EC=9E=AC=EB=B0=B0=EC=B9=98 =ED=95=A0 = =EC=88=98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EB=94=B0=EB=9D=BC=EC=84=9C =EC=9C=84=EC=9D=98 =EB=8B=A4=EC=9D=B4=EC=96=B4= =EA=B7=B8=EB=9E=A8=EC=97=90=EC=84=9C =ED=95=9C CPU=EA=B0=80 =EB=8F=99=EC=9E= =91=EC=8B=9C=ED=82=A4=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D= =BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 =EB=A7=8C=EB=93=A4=EC=96=B4=EB=82= =B4=EB=8A=94 -=EB=B3=80=ED=99=94=EB=8A=94 =ED=95=B4=EB=8B=B9 =EC=98=A4=ED=8D=BC=EB=A0=88= =EC=9D=B4=EC=85=98=EC=9D=B4 CPU =EC=99=80 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D= =98 =EB=8B=A4=EB=A5=B8 =EB=B6=80=EB=B6=84=EB=93=A4 =EC=82=AC=EC=9D=B4=EC=9D= =98 =EC=9D=B8=ED=84=B0=ED=8E=98=EC=9D=B4=EC=8A=A4(=EC=A0=90=EC=84=A0)=EB=A5= =BC -=EC=A7=80=EB=82=98=EA=B0=80=EB=A9=B4=EC=84=9C =EC=8B=9C=EC=8A=A4=ED=85=9C= =EC=9D=98 =EB=82=98=EB=A8=B8=EC=A7=80 =EB=B6=80=EB=B6=84=EB=93=A4=EC=97=90 = =EC=9D=B8=EC=A7=80=EB=90=A9=EB=8B=88=EB=8B=A4. - - -=EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=9D= =BC=EB=A0=A8=EC=9D=98 =EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=93=A4=EC=9D=84 =EC=83= =9D=EA=B0=81=ED=95=B4 =EB=B4=85=EC=8B=9C=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D - { A =3D=3D 1; B =3D=3D 2 } - A =3D 3; x =3D B; - B =3D 4; y =3D A; - -=EB=8B=A4=EC=9D=B4=EC=96=B4=EA=B7=B8=EB=9E=A8=EC=9D=98 =EA=B0=80=EC=9A=B4= =EB=8D=B0=EC=97=90 =EC=9C=84=EC=B9=98=ED=95=9C =EB=A9=94=EB=AA=A8=EB=A6=AC = =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90 =EB=B3=B4=EC=97=AC=EC=A7=80=EA=B2=8C = =EB=90=98=EB=8A=94 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=80 =EB=8B=A4= =EC=9D=8C=EC=9D=98 =EC=B4=9D -24=EA=B0=9C=EC=9D=98 =EC=A1=B0=ED=95=A9=EC=9C=BC=EB=A1=9C =EC=9E=AC=EA=B5= =AC=EC=84=B1=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - STORE A=3D3, STORE B=3D4, y=3DLOAD A->3, x=3DLOAD B->4 - STORE A=3D3, STORE B=3D4, x=3DLOAD B->4, y=3DLOAD A->3 - STORE A=3D3, y=3DLOAD A->3, STORE B=3D4, x=3DLOAD B->4 - STORE A=3D3, y=3DLOAD A->3, x=3DLOAD B->2, STORE B=3D4 - STORE A=3D3, x=3DLOAD B->2, STORE B=3D4, y=3DLOAD A->3 - STORE A=3D3, x=3DLOAD B->2, y=3DLOAD A->3, STORE B=3D4 - STORE B=3D4, STORE A=3D3, y=3DLOAD A->3, x=3DLOAD B->4 - STORE B=3D4, ... - ... - -=EB=94=B0=EB=9D=BC=EC=84=9C =EB=8B=A4=EC=9D=8C=EC=9D=98 =EB=84=A4=EA=B0=80= =EC=A7=80 =EC=A1=B0=ED=95=A9=EC=9D=98 =EA=B0=92=EB=93=A4=EC=9D=B4 =EB=82=98= =EC=98=AC =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - x =3D=3D 2, y =3D=3D 1 - x =3D=3D 2, y =3D=3D 3 - x =3D=3D 4, y =3D=3D 1 - x =3D=3D 4, y =3D=3D 3 - - -=ED=95=9C=EB=B0=9C =EB=8D=94 =EB=82=98=EC=95=84=EA=B0=80=EC=84=9C, =ED=95= =9C CPU =EA=B0=80 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=8B=9C=EC=8A=A4=ED=85=9C= =EC=97=90 =EB=B0=98=EC=98=81=ED=95=9C =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4= =ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=98 =EA=B2=B0=EA=B3=BC= =EB=8A=94 -=EB=8B=A4=EB=A5=B8 CPU =EC=97=90=EC=84=9C=EC=9D=98 =EB=A1=9C=EB=93=9C =EC= =98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =ED=86=B5=ED=95=B4 =EC= =9D=B8=EC=A7=80=EB=90=98=EB=8A=94=EB=8D=B0, =EC=9D=B4 =EB=95=8C =EC=8A=A4= =ED=86=A0=EC=96=B4=EA=B0=80 =EB=B0=98=EC=98=81=EB=90=9C =EC=88=9C=EC=84=9C= =EC=99=80 -=EB=8B=A4=EB=A5=B8 =EC=88=9C=EC=84=9C=EB=A1=9C =EC=9D=B8=EC=A7=80=EB=90=A0= =EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EC=98=88=EB=A1=9C, =EC=95=84=EB=9E=98=EC=9D=98 =EC=9D=BC=EB=A0=A8=EC=9D= =98 =EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=93=A4=EC=9D=84 =EC=83=9D=EA=B0=81=ED=95= =B4 =EB=B4=85=EC=8B=9C=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D - { A =3D=3D 1, B =3D=3D 2, C =3D=3D 3, P =3D=3D &A, Q =3D=3D &C } - B =3D 4; Q =3D P; - P =3D &B D =3D *Q; - -D =EB=A1=9C =EC=9D=BD=ED=98=80=EC=A7=80=EB=8A=94 =EA=B0=92=EC=9D=80 CPU 2 = =EC=97=90=EC=84=9C P =EB=A1=9C=EB=B6=80=ED=84=B0 =EC=9D=BD=ED=98=80=EC=A7= =84 =EC=A3=BC=EC=86=8C=EA=B0=92=EC=97=90 =EC=9D=98=EC=A1=B4=EC=A0=81=EC=9D= =B4=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 =EC=97=AC=EA=B8=B0=EC=97=94 -=EB=B6=84=EB=AA=85=ED=95=9C =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1= =EC=9D=B4 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7=80=EB=A7= =8C =EC=9D=B4 =EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=93=A4=EC=9D=98 =EC=8B=A4=ED=96= =89 =EA=B2=B0=EA=B3=BC=EB=A1=9C=EB=8A=94 =EC=95=84=EB=9E=98=EC=9D=98 -=EA=B2=B0=EA=B3=BC=EB=93=A4=EC=9D=B4 =EB=AA=A8=EB=91=90 =EB=82=98=ED=83=80= =EB=82=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (Q =3D=3D &A) and (D =3D=3D 1) - (Q =3D=3D &B) and (D =3D=3D 2) - (Q =3D=3D &B) and (D =3D=3D 4) - -CPU 2 =EB=8A=94 *Q =EC=9D=98 =EB=A1=9C=EB=93=9C=EB=A5=BC =EC=9A=94=EC=B2= =AD=ED=95=98=EA=B8=B0 =EC=A0=84=EC=97=90 P =EB=A5=BC Q =EC=97=90 =EB=84=A3= =EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 D =EC=97=90 C =EB=A5=BC =EC=A7=91=EC= =96=B4=EB=84=A3=EB=8A=94 -=EC=9D=BC=EC=9D=80 =EC=97=86=EC=9D=8C=EC=9D=84 =EC=95=8C=EC=95=84=EB=91=90= =EC=84=B8=EC=9A=94. - - -=EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4= =EC=85=98 -------------------- - -=EC=9D=BC=EB=B6=80 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EB=8A=94 =EC=9E=90= =EC=8B=A0=EC=9D=98 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=B8=ED=84=B0=ED=8E=98= =EC=9D=B4=EC=8A=A4=EB=A5=BC =EB=A9=94=EB=AA=A8=EB=A6=AC=EC=9D=98 =ED=8A=B9= =EC=A0=95 =EC=98=81=EC=97=AD=EC=9C=BC=EB=A1=9C =EB=A7=A4=ED=95=91=ED=95=B4= =EC=84=9C -=EC=A0=9C=EA=B3=B5=ED=95=98=EB=8A=94=EB=8D=B0(Memory mapped I/O), =ED=95= =B4=EB=8B=B9 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84= =B0=EC=97=90 =EC=A0=91=EA=B7=BC=ED=95=98=EB=8A=94 =EC=88=9C=EC=84=9C=EB=8A= =94 =EB=A7=A4=EC=9A=B0 -=EC=A4=91=EC=9A=94=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=98=88=EB=A5=BC =EB=93= =A4=EC=96=B4, =EC=96=B4=EB=93=9C=EB=A0=88=EC=8A=A4 =ED=8F=AC=ED=8A=B8 =EB= =A0=88=EC=A7=80=EC=8A=A4=ED=84=B0 (A) =EC=99=80 =EB=8D=B0=EC=9D=B4=ED=84=B0= =ED=8F=AC=ED=8A=B8 =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0 (D) -=EB=A5=BC =ED=86=B5=ED=95=B4 =EC=A0=91=EA=B7=BC=EB=90=98=EB=8A=94 =EB=82= =B4=EB=B6=80 =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0 =EC=A7=91=ED=95=A9=EC=9D= =84 =EA=B0=96=EB=8A=94 =EC=9D=B4=EB=8D=94=EB=84=B7 =EC=B9=B4=EB=93=9C=EB=A5= =BC =EC=83=9D=EA=B0=81=ED=95=B4 =EB=B4=85=EC=8B=9C=EB=8B=A4. =EB=82=B4=EB= =B6=80=EC=9D=98 -5=EB=B2=88 =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0=EB=A5=BC =EC=9D=BD=EA=B8= =B0 =EC=9C=84=ED=95=B4 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=BD=94=EB=93=9C=EA=B0= =80 =EC=82=AC=EC=9A=A9=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B= =A4: - - *A =3D 5; - x =3D *D; - -=ED=95=98=EC=A7=80=EB=A7=8C, =EC=9D=B4=EA=B1=B4 =EB=8B=A4=EC=9D=8C=EC=9D= =98 =EB=91=90 =EC=A1=B0=ED=95=A9 =EC=A4=91 =ED=95=98=EB=82=98=EB=A1=9C =EB= =A7=8C=EB=93=A4=EC=96=B4=EC=A7=88 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4: - - STORE *A =3D 5, x =3D LOAD *D - x =3D LOAD *D, STORE *A =3D 5 - -=EB=91=90=EB=B2=88=EC=A7=B8 =EC=A1=B0=ED=95=A9=EC=9D=80 =EB=8D=B0=EC=9D=B4= =ED=84=B0=EB=A5=BC =EC=9D=BD=EC=96=B4=EC=98=A8 _=ED=9B=84=EC=97=90_ =EC=A3= =BC=EC=86=8C=EB=A5=BC =EC=84=A4=EC=A0=95=ED=95=98=EB=AF=80=EB=A1=9C, =EC=98= =A4=EB=8F=99=EC=9E=91=EC=9D=84 =EC=9D=BC=EC=9C=BC=ED=82=AC =EA=B2=81=EB=8B= =88=EB=8B=A4. - - -=EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD --------- - -CPU =EC=97=90=EA=B2=8C =EA=B8=B0=EB=8C=80=ED=95=A0 =EC=88=98 =EC=9E=88=EB= =8A=94 =EC=B5=9C=EC=86=8C=ED=95=9C=EC=9D=98 =EB=B3=B4=EC=9E=A5=EC=82=AC=ED= =95=AD =EB=AA=87=EA=B0=80=EC=A7=80=EA=B0=80 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4: - - (*) =EC=96=B4=EB=96=A4 CPU =EB=93=A0, =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D= =B4 =EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95= =A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=80 =ED=95=B4=EB=8B=B9 CPU =EC=9E=90=EC= =8B=A0=EC=97=90=EA=B2=8C - =EC=9E=88=EC=96=B4=EC=84=9C=EB=8A=94 =EC=88=9C=EC=84=9C=EB=8C=80=EB= =A1=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90 =EC= =88=98=ED=96=89 =EC=9A=94=EC=B2=AD=EB=90=A9=EB=8B=88=EB=8B=A4. =EC=A6=89, = =EB=8B=A4=EC=9D=8C=EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C: - - Q =3D READ_ONCE(P); D =3D READ_ONCE(*Q); - - CPU =EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EB=A9= =94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EC=8B= =9C=ED=80=80=EC=8A=A4=EB=A5=BC =EC=88=98=ED=96=89 =EC=9A=94=EC=B2=AD=ED=95= =A9=EB=8B=88=EB=8B=A4: - - Q =3D LOAD P, D =3D LOAD *Q - - =EA=B7=B8=EB=A6=AC=EA=B3=A0 =EA=B7=B8 =EC=8B=9C=ED=80=80=EC=8A=A4 =EB= =82=B4=EC=97=90=EC=84=9C=EC=9D=98 =EC=88=9C=EC=84=9C=EB=8A=94 =ED=95=AD=EC= =83=81 =EC=A7=80=EC=BC=9C=EC=A7=91=EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7=80= =EB=A7=8C, DEC Alpha =EC=97=90=EC=84=9C - READ_ONCE() =EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC= =EC=96=B4 =EB=AA=85=EB=A0=B9=EB=8F=84 =EB=82=B4=EA=B2=8C =EB=90=98=EC=96=B4= =EC=9E=88=EC=96=B4=EC=84=9C, DEC Alpha CPU =EB=8A=94 - =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EB=A9=94=EB=AA=A8=EB= =A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84 =EB= =82=B4=EB=86=93=EA=B2=8C =EB=90=A9=EB=8B=88=EB=8B=A4: - - Q =3D LOAD P, MEMORY_BARRIER, D =3D LOAD *Q, MEMORY_BARRIER - - DEC Alpha =EC=97=90=EC=84=9C =EC=88=98=ED=96=89=EB=90=98=EB=93=A0 =EC= =95=84=EB=8B=88=EB=93=A0, READ_ONCE() =EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC= =EB=9F=AC=EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EC=95=85=EC=98=81=ED=96=A5 - =EB=98=90=ED=95=9C =EC=A0=9C=EA=B1=B0=ED=95=A9=EB=8B=88=EB=8B=A4. - - (*) =ED=8A=B9=EC=A0=95 CPU =EB=82=B4=EC=97=90=EC=84=9C =EA=B2=B9=EC=B9=98= =EB=8A=94 =EC=98=81=EC=97=AD=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC=EC=97=90 = =ED=96=89=ED=95=B4=EC=A7=80=EB=8A=94 =EB=A1=9C=EB=93=9C=EC=99=80 =EC=8A=A4= =ED=86=A0=EC=96=B4 =EB=93=A4=EC=9D=80 =ED=95=B4=EB=8B=B9 - CPU =EC=95=88=EC=97=90=EC=84=9C=EB=8A=94 =EC=88=9C=EC=84=9C=EA=B0=80 = =EB=B0=94=EB=80=8C=EC=A7=80 =EC=95=8A=EC=9D=80 =EA=B2=83=EC=9C=BC=EB=A1=9C = =EB=B3=B4=EC=97=AC=EC=A7=91=EB=8B=88=EB=8B=A4. =EC=A6=89, =EB=8B=A4=EC=9D= =8C=EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C: - - a =3D READ_ONCE(*X); WRITE_ONCE(*X, b); - - CPU =EB=8A=94 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC= =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EC=8B=9C=ED=80=80=EC=8A=A4= =EB=A7=8C=EC=9D=84 =EB=A9=94=EB=AA=A8=EB=A6=AC=EC=97=90 =EC=9A=94=EC=B2=AD= =ED=95=A0 =EA=B2=81=EB=8B=88=EB=8B=A4: - - a =3D LOAD *X, STORE *X =3D b - - =EA=B7=B8=EB=A6=AC=EA=B3=A0 =EB=8B=A4=EC=9D=8C=EC=97=90 =EB=8C=80=ED= =95=B4=EC=84=9C=EB=8A=94: - - WRITE_ONCE(*X, c); d =3D READ_ONCE(*X); - - CPU =EB=8A=94 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=88=98=ED=96=89 =EC=9A= =94=EC=B2=AD=EB=A7=8C=EC=9D=84 =EB=A7=8C=EB=93=A4=EC=96=B4 =EB=83=85=EB=8B= =88=EB=8B=A4: - - STORE *X =3D c, d =3D LOAD *X - - (=EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EA= =B3=BC =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC= =85=98=EC=9D=B4 =EA=B2=B9=EC=B9=98=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC= =98=81=EC=97=AD=EC=97=90 =EB=8C=80=ED=95=B4 - =EC=88=98=ED=96=89=EB=90=9C=EB=8B=A4=EB=A9=B4 =ED=95=B4=EB=8B=B9 =EC= =98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=80 =EA=B2=B9=EC= =B9=9C=EB=8B=A4=EA=B3=A0 =ED=91=9C=ED=98=84=EB=90=A9=EB=8B=88=EB=8B=A4). - -=EA=B7=B8=EB=A6=AC=EA=B3=A0 _=EB=B0=98=EB=93=9C=EC=8B=9C_ =EB=98=90=EB=8A= =94 _=EC=A0=88=EB=8C=80=EB=A1=9C_ =EA=B0=80=EC=A0=95=ED=95=98=EA=B1=B0=EB= =82=98 =EA=B0=80=EC=A0=95=ED=95=98=EC=A7=80 =EB=A7=90=EC=95=84=EC=95=BC =ED= =95=98=EB=8A=94 =EA=B2=83=EB=93=A4=EC=9D=B4 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4: - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 READ_ONCE() =EB=82=98 W= RITE_ONCE() =EB=A1=9C =EB=B3=B4=ED=98=B8=EB=90=98=EC=A7=80 =EC=95=8A=EC=9D= =80 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4=EB=A5=BC - =EB=8B=B9=EC=8B=A0=EC=9D=B4 =EC=9B=90=ED=95=98=EB=8A=94 =EB=8C=80=EB= =A1=9C =ED=95=A0 =EA=B2=83=EC=9D=B4=EB=9D=BC=EB=8A=94 =EA=B0=80=EC=A0=95=EC= =9D=80 _=EC=A0=88=EB=8C=80=EB=A1=9C_ =ED=95=B4=EC=84=A0 =EC=95=88=EB=90=A9= =EB=8B=88=EB=8B=A4. =EA=B7=B8=EA=B2=83=EB=93=A4=EC=9D=B4 - =EC=97=86=EB=8B=A4=EB=A9=B4, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB= =8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC= =84=B9=EC=85=98=EC=97=90=EC=84=9C =EB=8B=A4=EB=A3=A8=EA=B2=8C =EB=90=A0, = =EB=AA=A8=EB=93=A0 "=EC=B0=BD=EC=9D=98=EC=A0=81=EC=9D=B8" - =EB=B3=80=EA=B2=BD=EB=93=A4=EC=9D=84 =EB=A7=8C=EB=93=A4=EC=96=B4=EB= =82=BC =EA=B6=8C=ED=95=9C=EC=9D=84 =EA=B0=96=EA=B2=8C =EB=90=A9=EB=8B=88=EB= =8B=A4. - - (*) =EA=B0=9C=EB=B3=84=EC=A0=81=EC=9D=B8 =EB=A1=9C=EB=93=9C=EC=99=80 =EC= =8A=A4=ED=86=A0=EC=96=B4=EB=93=A4=EC=9D=B4 =EC=A3=BC=EC=96=B4=EC=A7=84 =EC= =88=9C=EC=84=9C=EB=8C=80=EB=A1=9C =EC=9A=94=EC=B2=AD=EB=90=A0 =EA=B2=83=EC= =9D=B4=EB=9D=BC=EB=8A=94 =EA=B0=80=EC=A0=95=EC=9D=80 _=EC=A0=88=EB=8C=80=EB= =A1=9C_ - =ED=95=98=EC=A7=80 =EB=A7=90=EC=95=84=EC=95=BC =ED=95=A9=EB=8B=88=EB= =8B=A4. =EC=9D=B4 =EB=A7=90=EC=9D=80 =EA=B3=A7: - - X =3D *A; Y =3D *B; *D =3D Z; - - =EB=8A=94 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EA=B2=83=EB=93=A4 =EC=A4=91 = =EC=96=B4=EB=8A=90 =EA=B2=83=EC=9C=BC=EB=A1=9C=EB=93=A0 =EB=A7=8C=EB=93=A4= =EC=96=B4=EC=A7=88 =EC=88=98 =EC=9E=88=EB=8B=A4=EB=8A=94 =EC=9D=98=EB=AF=B8= =EC=9E=85=EB=8B=88=EB=8B=A4: - - X =3D LOAD *A, Y =3D LOAD *B, STORE *D =3D Z - X =3D LOAD *A, STORE *D =3D Z, Y =3D LOAD *B - Y =3D LOAD *B, X =3D LOAD *A, STORE *D =3D Z - Y =3D LOAD *B, STORE *D =3D Z, X =3D LOAD *A - STORE *D =3D Z, X =3D LOAD *A, Y =3D LOAD *B - STORE *D =3D Z, Y =3D LOAD *B, X =3D LOAD *A - - (*) =EA=B2=B9=EC=B9=98=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC= =84=B8=EC=8A=A4=EB=93=A4=EC=9D=80 =ED=95=A9=EC=B3=90=EC=A7=80=EA=B1=B0=EB= =82=98 =EB=B2=84=EB=A0=A4=EC=A7=88 =EC=88=98 =EC=9E=88=EC=9D=8C=EC=9D=84 _= =EB=B0=98=EB=93=9C=EC=8B=9C_ =EA=B0=80=EC=A0=95=ED=95=B4=EC=95=BC - =ED=95=A9=EB=8B=88=EB=8B=A4. =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=BD=94= =EB=93=9C=EB=8A=94: - - X =3D *A; Y =3D *(A + 4); - - =EB=8B=A4=EC=9D=8C=EC=9D=98 =EA=B2=83=EB=93=A4 =EC=A4=91 =EB=AD=90=EB= =93=A0 =EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - X =3D LOAD *A; Y =3D LOAD *(A + 4); - Y =3D LOAD *(A + 4); X =3D LOAD *A; - {X, Y} =3D LOAD {*A, *(A + 4) }; - - =EA=B7=B8=EB=A6=AC=EA=B3=A0: - - *A =3D X; *(A + 4) =3D Y; - - =EB=8A=94 =EB=8B=A4=EC=9D=8C =EC=A4=91 =EB=AD=90=EB=93=A0 =EB=90=A0 = =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - STORE *A =3D X; STORE *(A + 4) =3D Y; - STORE *(A + 4) =3D Y; STORE *A =3D X; - STORE {*A, *(A + 4) } =3D {X, Y}; - -=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EC=97=90 = =EB=B0=98=EB=8C=80=EB=90=98=EB=8A=94 =EA=B2=83=EB=93=A4(anti-guarantees)=EC= =9D=B4 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (*) =EC=9D=B4 =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EB=93=A4=EC=9D=80 bitf= ield =EC=97=90=EB=8A=94 =EC=A0=81=EC=9A=A9=EB=90=98=EC=A7=80 =EC=95=8A=EB= =8A=94=EB=8D=B0, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=93=A4=EC=9D=80 bit= field =EB=A5=BC - =EC=88=98=EC=A0=95=ED=95=98=EB=8A=94 =EC=BD=94=EB=93=9C=EB=A5=BC =EC= =83=9D=EC=84=B1=ED=95=A0 =EB=95=8C =EC=9B=90=EC=9E=90=EC=84=B1 =EC=97=86=EB= =8A=94(non-atomic) =EC=9D=BD=EA=B3=A0-=EC=88=98=EC=A0=95=ED=95=98=EA=B3=A0-= =EC=93=B0=EB=8A=94 - =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EB=93=A4=EC=9D=98 =EC= =A1=B0=ED=95=A9=EC=9D=84 =EB=A7=8C=EB=93=9C=EB=8A=94 =EA=B2=BD=EC=9A=B0=EA= =B0=80 =EB=A7=8E=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=9E=85=EB=8B=88=EB=8B=A4. = =EB=B3=91=EB=A0=AC =EC=95=8C=EA=B3=A0=EB=A6=AC=EC=A6=98=EC=9D=98 - =EB=8F=99=EA=B8=B0=ED=99=94=EC=97=90 bitfield =EB=A5=BC =EC=82=AC=EC= =9A=A9=ED=95=98=EB=A0=A4 =ED=95=98=EC=A7=80 =EB=A7=88=EC=8B=AD=EC=8B=9C=EC= =98=A4. - - (*) bitfield =EB=93=A4=EC=9D=B4 =EC=97=AC=EB=9F=AC =EB=9D=BD=EC=9C=BC=EB= =A1=9C =EB=B3=B4=ED=98=B8=EB=90=98=EB=8A=94 =EA=B2=BD=EC=9A=B0=EB=9D=BC =ED= =95=98=EB=8D=94=EB=9D=BC=EB=8F=84, =ED=95=98=EB=82=98=EC=9D=98 bitfield =EC= =9D=98 - =EB=AA=A8=EB=93=A0 =ED=95=84=EB=93=9C=EB=93=A4=EC=9D=80 =ED=95=98=EB= =82=98=EC=9D=98 =EB=9D=BD=EC=9C=BC=EB=A1=9C =EB=B3=B4=ED=98=B8=EB=90=98=EC= =96=B4=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4. =EB=A7=8C=EC=95=BD =ED=95=9C = bitfield =EC=9D=98 =EB=91=90 - =ED=95=84=EB=93=9C=EA=B0=80 =EC=84=9C=EB=A1=9C =EB=8B=A4=EB=A5=B8 =EB= =9D=BD=EC=9C=BC=EB=A1=9C =EB=B3=B4=ED=98=B8=EB=90=9C=EB=8B=A4=EB=A9=B4, =EC= =BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=9D=98 =EC=9B=90=EC=9E=90=EC=84=B1 =EC= =97=86=EB=8A=94 - =EC=9D=BD=EA=B3=A0-=EC=88=98=EC=A0=95=ED=95=98=EA=B3=A0-=EC=93=B0=EB= =8A=94 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98 =EC=A1=B0=ED=95=A9=EC= =9D=80 =ED=95=9C =ED=95=84=EB=93=9C=EC=97=90=EC=9D=98 =EC=97=85=EB=8D=B0=EC= =9D=B4=ED=8A=B8=EA=B0=80 =EA=B7=BC=EC=B2=98=EC=9D=98 - =ED=95=84=EB=93=9C=EC=97=90=EB=8F=84 =EC=98=81=ED=96=A5=EC=9D=84 =EB= =81=BC=EC=B9=98=EA=B2=8C =ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4. - - (*) =EC=9D=B4 =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EB=93=A4=EC=9D=80 =EC= =A0=81=EC=A0=88=ED=95=98=EA=B2=8C =EC=A0=95=EB=A0=AC=EB=90=98=EA=B3=A0 =ED= =81=AC=EA=B8=B0=EA=B0=80 =EC=9E=A1=ED=9E=8C =EC=8A=A4=EC=B9=BC=EB=9D=BC =EB= =B3=80=EC=88=98=EB=93=A4=EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB=A7=8C - =EC=A0=81=EC=9A=A9=EB=90=A9=EB=8B=88=EB=8B=A4. "=EC=A0=81=EC=A0=88= =ED=95=98=EA=B2=8C =ED=81=AC=EA=B8=B0=EA=B0=80 =EC=9E=A1=ED=9E=8C" =EC=9D= =B4=EB=9D=BC=ED=95=A8=EC=9D=80 =ED=98=84=EC=9E=AC=EB=A1=9C=EC=8D=A8=EB=8A= =94 "char", "short", - "int" =EA=B7=B8=EB=A6=AC=EA=B3=A0 "long" =EA=B3=BC =EA=B0=99=EC=9D=80= =ED=81=AC=EA=B8=B0=EC=9D=98 =EB=B3=80=EC=88=98=EB=93=A4=EC=9D=84 =EC=9D=98= =EB=AF=B8=ED=95=A9=EB=8B=88=EB=8B=A4. "=EC=A0=81=EC=A0=88=ED=95=98=EA=B2= =8C =EC=A0=95=EB=A0=AC=EB=90=9C" - =EC=9D=80 =EC=9E=90=EC=97=B0=EC=8A=A4=EB=9F=B0 =EC=A0=95=EB=A0=AC=EC= =9D=84 =EC=9D=98=EB=AF=B8=ED=95=98=EB=8A=94=EB=8D=B0, =EB=94=B0=EB=9D=BC=EC= =84=9C "char" =EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB=8A=94 =EC=95=84=EB= =AC=B4 =EC=A0=9C=EC=95=BD=EC=9D=B4 =EC=97=86=EA=B3=A0, - "short" =EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB=8A=94 2=EB=B0=94=EC= =9D=B4=ED=8A=B8 =EC=A0=95=EB=A0=AC=EC=9D=84, "int" =EC=97=90=EB=8A=94 4=EB= =B0=94=EC=9D=B4=ED=8A=B8 =EC=A0=95=EB=A0=AC=EC=9D=84, =EA=B7=B8=EB=A6=AC=EA= =B3=A0 - "long" =EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB=8A=94 32-bit =EC=8B= =9C=EC=8A=A4=ED=85=9C=EC=9D=B8=EC=A7=80 64-bit =EC=8B=9C=EC=8A=A4=ED=85=9C= =EC=9D=B8=EC=A7=80=EC=97=90 =EB=94=B0=EB=9D=BC 4=EB=B0=94=EC=9D=B4=ED=8A=B8= =EB=98=90=EB=8A=94 - 8=EB=B0=94=EC=9D=B4=ED=8A=B8 =EC=A0=95=EB=A0=AC=EC=9D=84 =EC=9D=98=EB= =AF=B8=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EB=B3=B4=EC=9E=A5=EC=82=AC= =ED=95=AD=EB=93=A4=EC=9D=80 C11 =ED=91=9C=EC=A4=80=EC=97=90=EC=84=9C =EC=86= =8C=EA=B0=9C=EB=90=98=EC=97=88=EC=9C=BC=EB=AF=80=EB=A1=9C, - C11 =EC=A0=84=EC=9D=98 =EC=98=A4=EB=9E=98=EB=90=9C =EC=BB=B4=ED=8C=8C= =EC=9D=BC=EB=9F=AC(=EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, gcc 4.6) =EB=A5= =BC =EC=82=AC=EC=9A=A9=ED=95=A0 =EB=95=8C=EC=97=94 =EC=A3=BC=EC=9D=98=ED=95= =98=EC=8B=9C=EA=B8=B0 - =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. =ED=91=9C=EC=A4=80=EC=97=90 = =EC=9D=B4 =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EB=93=A4=EC=9D=80 "memory lo= cation" =EC=9D=84 =EC=A0=95=EC=9D=98=ED=95=98=EB=8A=94 3.14 - =EC=84=B9=EC=85=98=EC=97=90 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC= =9D=B4 =EC=84=A4=EB=AA=85=EB=90=98=EC=96=B4 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4: - (=EC=97=AD=EC=9E=90: =EC=9D=B8=EC=9A=A9=EB=AC=B8=EC=9D=B4=EB=AF=80=EB= =A1=9C =EB=B2=88=EC=97=AD=ED=95=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB= =8B=A4) - - memory location - either an object of scalar type, or a maximal sequence - of adjacent bit-fields all having nonzero width - - NOTE 1: Two threads of execution can update and access - separate memory locations without interfering with - each other. - - NOTE 2: A bit-field and an adjacent non-bit-field member - are in separate memory locations. The same applies - to two bit-fields, if one is declared inside a nested - structure declaration and the other is not, or if the two - are separated by a zero-length bit-field declaration, - or if they are separated by a non-bit-field member - declaration. It is not safe to concurrently update two - bit-fields in the same structure if all members declared - between them are also bit-fields, no matter what the - sizes of those intervening bit-fields happen to be. - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=9E=80 =EB=AC=B4= =EC=97=87=EC=9D=B8=EA=B0=80? -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D - -=EC=95=9E=EC=97=90=EC=84=9C =EB=B4=A4=EB=93=AF=EC=9D=B4, =EC=83=81=ED=98= =B8=EA=B0=84 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=B4 =EC=97=86=EB=8A=94 =EB=A9= =94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93= =A4=EC=9D=80 =EC=8B=A4=EC=A0=9C=EB=A1=9C=EB=8A=94 =EB=AC=B4=EC=9E=91=EC=9C= =84=EC=A0=81 -=EC=88=9C=EC=84=9C=EB=A1=9C =EC=88=98=ED=96=89=EB=90=A0 =EC=88=98 =EC=9E= =88=EC=9C=BC=EB=A9=B0, =EC=9D=B4=EB=8A=94 CPU =EC=99=80 CPU =EA=B0=84=EC=9D= =98 =EC=83=81=ED=98=B8=EC=9E=91=EC=9A=A9=EC=9D=B4=EB=82=98 I/O =EC=97=90 = =EB=AC=B8=EC=A0=9C=EA=B0=80 =EB=90=A0 =EC=88=98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=94=B0=EB=9D=BC=EC=84=9C =EC=BB= =B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=99=80 CPU =EA=B0=80 =EC=88=9C=EC=84=9C=EB= =A5=BC =EB=B0=94=EA=BE=B8=EB=8A=94=EB=8D=B0 =EC=A0=9C=EC=95=BD=EC=9D=84 =EA= =B1=B8 =EC=88=98 =EC=9E=88=EB=8F=84=EB=A1=9D =EA=B0=9C=EC=9E=85=ED=95=A0 -=EC=88=98 =EC=9E=88=EB=8A=94 =EC=96=B4=EB=96=A4 =EB=B0=A9=EB=B2=95=EC=9D= =B4 =ED=95=84=EC=9A=94=ED=95=A9=EB=8B=88=EB=8B=A4. - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EA=B7=B8= =EB=9F=B0 =EA=B0=9C=EC=9E=85 =EC=88=98=EB=8B=A8=EC=9E=85=EB=8B=88=EB=8B=A4.= =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=B0= =B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=82=AC=EC=9D=B4=EC=97=90 =EB=91=94 =EC=95= =9E=EA=B3=BC -=EB=92=A4 =EC=96=91=EC=B8=A1=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98= =A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4 =EA=B0=84=EC=97=90 =EB=B6= =80=EB=B6=84=EC=A0=81 =EC=88=9C=EC=84=9C=EA=B0=80 =EC=A1=B4=EC=9E=AC=ED=95= =98=EB=8F=84=EB=A1=9D =ED=95=98=EB=8A=94 =ED=9A=A8=EA=B3=BC=EB=A5=BC =EC=A4= =8D=EB=8B=88=EB=8B=A4. - -=EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 CPU =EB=93=A4=EA=B3=BC =EC=97=AC=EB= =9F=AC =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EB=93=A4=EC=9D=80 =EC=84=B1=EB= =8A=A5=EC=9D=84 =EC=98=AC=EB=A6=AC=EA=B8=B0 =EC=9C=84=ED=95=B4 =EB=AA=85=EB= =A0=B9=EC=96=B4 =EC=9E=AC=EB=B0=B0=EC=B9=98, =EC=8B=A4=ED=96=89 -=EC=9C=A0=EC=98=88, =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0= =88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=98 =EC=A1=B0=ED=95=A9, =EC=98=88=EC=B8= =A1=EC=A0=81 =EB=A1=9C=EB=93=9C(speculative load), =EB=B8=8C=EB=9E=9C=EC=B9= =98 -=EC=98=88=EC=B8=A1(speculative branch prediction), =EB=8B=A4=EC=96=91=ED= =95=9C =EC=A2=85=EB=A5=98=EC=9D=98 =EC=BA=90=EC=8B=B1(caching) =EB=93=B1=EC= =9D=98 =EB=8B=A4=EC=96=91=ED=95=9C -=ED=8A=B8=EB=A6=AD=EC=9D=84 =EC=82=AC=EC=9A=A9=ED=95=A0 =EC=88=98 =EC=9E= =88=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 =EC=9D=B4=EB=9F=B0 =EA=B0=95=EC=A0= =9C=EB=A0=A5=EC=9D=80 =EC=A4=91=EC=9A=94=ED=95=A9=EB=8B=88=EB=8B=A4. =EB= =A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=80 =EC= =9D=B4=EB=9F=B0 -=ED=8A=B8=EB=A6=AD=EB=93=A4=EC=9D=84 =EB=AC=B4=ED=9A=A8=EB=A1=9C =ED=95=98= =EA=B1=B0=EB=82=98 =EC=96=B5=EC=A0=9C=ED=95=98=EB=8A=94 =EB=AA=A9=EC=A0=81= =EC=9C=BC=EB=A1=9C =EC=82=AC=EC=9A=A9=EB=90=98=EC=96=B4=EC=A0=B8=EC=84=9C = =EC=BD=94=EB=93=9C=EA=B0=80 =EC=97=AC=EB=9F=AC CPU =EC=99=80 -=EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EB=93=A4 =EA=B0=84=EC=9D=98 =EC=83=81= =ED=98=B8=EC=9E=91=EC=9A=A9=EC=9D=84 =EC=A0=95=EC=83=81=EC=A0=81=EC=9C=BC= =EB=A1=9C =EC=A0=9C=EC=96=B4=ED=95=A0 =EC=88=98 =EC=9E=88=EA=B2=8C =ED=95= =B4=EC=A4=8D=EB=8B=88=EB=8B=A4. - - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 =EC=A2=85= =EB=A5=98 --------------------- - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=84=A4= =EA=B0=9C=EC=9D=98 =EA=B8=B0=EB=B3=B8 =ED=83=80=EC=9E=85=EC=9C=BC=EB=A1=9C = =EB=B6=84=EB=A5=98=EB=90=A9=EB=8B=88=EB=8B=A4: - - (1) =EC=93=B0=EA=B8=B0 (=EB=98=90=EB=8A=94 =EC=8A=A4=ED=86=A0=EC=96=B4) = =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4. - - =EC=93=B0=EA=B8=B0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=8A=94 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB=8B=A4=EB=A5=B8 =EC= =BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=EB=93=A4=EC=97=90 =ED=95=B4=EB=8B=B9 =EB= =B0=B0=EB=A6=AC=EC=96=B4=EB=B3=B4=EB=8B=A4 =EC=95=9E=EC=84=9C - =EB=AA=85=EC=8B=9C=EB=90=9C =EB=AA=A8=EB=93=A0 STORE =EC=98=A4=ED=8D= =BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=B4 =ED=95=B4=EB=8B=B9 =EB=B0= =B0=EB=A6=AC=EC=96=B4 =EB=92=A4=EC=97=90 =EB=AA=85=EC=8B=9C=EB=90=9C =EB=AA= =A8=EB=93=A0 STORE - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EB=B3=B4=EB=8B= =A4 =EB=A8=BC=EC=A0=80 =EC=88=98=ED=96=89=EB=90=9C =EA=B2=83=EC=9C=BC=EB=A1= =9C =EB=B3=B4=EC=9D=BC =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B= =88=EB=8B=A4. - - =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=8A=A4=ED= =86=A0=EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC= =97=90 =EB=8C=80=ED=95=9C =EB=B6=80=EB=B6=84=EC=A0=81 =EC=88=9C=EC=84=9C = =EC=84=B8=EC=9A=B0=EA=B8=B0=EC=9E=85=EB=8B=88=EB=8B=A4; =EB=A1=9C=EB=93=9C - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=97=90 =EB= =8C=80=ED=95=B4=EC=84=9C=EB=8A=94 =EC=96=B4=EB=96=A4 =EC=98=81=ED=96=A5=EB= =8F=84 =EB=81=BC=EC=B9=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - - CPU =EB=8A=94 =EC=8B=9C=EA=B0=84=EC=9D=98 =ED=9D=90=EB=A6=84=EC=97=90= =EB=94=B0=EB=9D=BC =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=8B=9C=EC=8A=A4=ED=85=9C= =EC=97=90 =EC=9D=BC=EB=A0=A8=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4= =ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84 - =ED=95=98=EB=82=98=EC=94=A9 =EC=9A=94=EC=B2=AD=ED=95=B4 =EC=A7=91=EC= =96=B4=EB=84=A3=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=93=B0=EA=B8=B0 =EB=B0=B0= =EB=A6=AC=EC=96=B4 =EC=95=9E=EC=9D=98 =EB=AA=A8=EB=93=A0 =EC=8A=A4=ED=86=A0= =EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=80 - =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4 =EB=92=A4=EC=9D=98 =EB= =AA=A8=EB=93=A0 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EB=93=A4=EB=B3=B4=EB=8B=A4 _=EC=95=9E=EC=84=9C_ =EC=88=98= =ED=96=89=EB=90=A0 =EA=B2=81=EB=8B=88=EB=8B=A4. - - [!] =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=80 = =EC=9D=BD=EA=B8=B0 =EB=98=90=EB=8A=94 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4= =EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=99=80 =ED=95=A8=EA=BB=98 =EC=A7=9D= =EC=9D=84 =EB=A7=9E=EC=B6=B0 - =EC=82=AC=EC=9A=A9=EB=90=98=EC=96=B4=EC=95=BC=EB=A7=8C =ED=95=A8=EC= =9D=84 =EC=95=8C=EC=95=84=EB=91=90=EC=84=B8=EC=9A=94; "SMP =EB=B0=B0=EB=A6= =AC=EC=96=B4 =EC=A7=9D=EB=A7=9E=EC=B6=94=EA=B8=B0" =EC=84=9C=EB=B8=8C=EC=84= =B9=EC=85=98=EC=9D=84 =EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - - (2) =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC= =96=B4 (=EC=97=AD=EC=82=AC=EC=A0=81). - - =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=8A=94 =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 =EB= =B3=B4=EB=8B=A4 =EC=99=84=ED=99=94=EB=90=9C =ED=98=95=ED=83=9C=EC=9E=85=EB= =8B=88=EB=8B=A4. =EB=91=90=EA=B0=9C=EC=9D=98 =EB=A1=9C=EB=93=9C - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 =EC=9E=88=EA= =B3=A0 =EB=91=90=EB=B2=88=EC=A7=B8 =EA=B2=83=EC=9D=B4 =EC=B2=AB=EB=B2=88=EC= =A7=B8 =EA=B2=83=EC=9D=98 =EA=B2=B0=EA=B3=BC=EC=97=90 =EC=9D=98=EC=A1=B4=ED= =95=98=EA=B3=A0 =EC=9E=88=EC=9D=84 =EB=95=8C(=EC=98=88: - =EB=91=90=EB=B2=88=EC=A7=B8 =EB=A1=9C=EB=93=9C=EA=B0=80 =EC=B0=B8=EC= =A1=B0=ED=95=A0 =EC=A3=BC=EC=86=8C=EB=A5=BC =EC=B2=AB=EB=B2=88=EC=A7=B8 =EB= =A1=9C=EB=93=9C=EA=B0=80 =EC=9D=BD=EB=8A=94 =EA=B2=BD=EC=9A=B0), =EB=91=90= =EB=B2=88=EC=A7=B8 =EB=A1=9C=EB=93=9C=EA=B0=80 =EC=9D=BD=EC=96=B4=EC=98=AC - =EB=8D=B0=EC=9D=B4=ED=84=B0=EB=8A=94 =EC=B2=AB=EB=B2=88=EC=A7=B8 =EB= =A1=9C=EB=93=9C=EC=97=90 =EC=9D=98=ED=95=B4 =EA=B7=B8 =EC=A3=BC=EC=86=8C=EA= =B0=80 =EC=96=BB=EC=96=B4=EC=A7=84 =EB=92=A4=EC=97=90 =EC=97=85=EB=8D=B0=EC= =9D=B4=ED=8A=B8 =EB=90=A8=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95=98=EA=B8=B0 - =EC=9C=84=ED=95=B4=EC=84=9C =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC= =84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =ED=95=84=EC=9A=94=ED=95=A0 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=8A=94 =EC=83=81=ED=98=B8 =EC=9D=98=EC=A1=B4=EC=A0=81=EC=9D=B8 =EB= =A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4 =EC= =82=AC=EC=9D=B4=EC=9D=98 =EB=B6=80=EB=B6=84=EC=A0=81 =EC=88=9C=EC=84=9C - =EC=84=B8=EC=9A=B0=EA=B8=B0=EC=9E=85=EB=8B=88=EB=8B=A4; =EC=8A=A4=ED= =86=A0=EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC= =9D=B4=EB=82=98 =EB=8F=85=EB=A6=BD=EC=A0=81=EC=9D=B8 =EB=A1=9C=EB=93=9C=EB= =93=A4, =EB=98=90=EB=8A=94 =EC=A4=91=EB=B3=B5=EB=90=98=EB=8A=94 - =EB=A1=9C=EB=93=9C=EB=93=A4=EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB= =8A=94 =EC=96=B4=EB=96=A4 =EC=98=81=ED=96=A5=EB=8F=84 =EB=81=BC=EC=B9=98=EC= =A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - - (1) =EC=97=90=EC=84=9C =EC=96=B8=EA=B8=89=ED=96=88=EB=93=AF=EC=9D=B4,= =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 CPU =EB=93=A4=EC=9D=80 =EB=A9=94=EB= =AA=A8=EB=A6=AC =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90 =EC=9D=BC=EB=A0=A8=EC= =9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84 =EB= =8D=98=EC=A0=B8 =EB=84=A3=EA=B3=A0 =EC=9E=88=EC=9C=BC=EB=A9=B0, =EA=B1=B0= =EA=B8=B0=EC=97=90 =EA=B4=80=EC=8B=AC=EC=9D=B4 =EC=9E=88=EB=8A=94 =EB=8B=A4= =EB=A5=B8 CPU =EB=8A=94 =EA=B7=B8 - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84 =EB= =A9=94=EB=AA=A8=EB=A6=AC =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=B4 =EC=8B=A4=ED= =96=89=ED=95=9C =EA=B2=B0=EA=B3=BC=EB=A5=BC =EC=9D=B8=EC=A7=80=ED=95=A0 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EC=B2=98=EB=9F=BC - =EB=8B=A4=EB=A5=B8 CPU =EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98= =A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=98 =EA=B2=B0=EA=B3=BC=EC=97= =90 =EA=B4=80=EC=8B=AC=EC=9D=84 =EB=91=90=EA=B3=A0 =EC=9E=88=EB=8A=94 CPU = =EA=B0=80 =EC=88=98=ED=96=89 =EC=9A=94=EC=B2=AD=ED=95=9C - =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=8A=94, =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=95=9E=EC=9D=98 =EC=96=B4= =EB=96=A4 =EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EC=9D=B4 =EB=8B=A4=EB=A5=B8 CPU =EC=97=90=EC=84=9C - =EB=8D=98=EC=A0=B8 =EB=84=A3=EC=9D=80 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC= =98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EA=B3=BC =EA=B0=99=EC=9D=80 =EC= =98=81=EC=97=AD=EC=9D=84 =ED=96=A5=ED=96=88=EB=8B=A4=EB=A9=B4, =EA=B7=B8=EB= =9F=B0 =EC=8A=A4=ED=86=A0=EC=96=B4 - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=B4 =EB= =A7=8C=EB=93=A4=EC=96=B4=EB=82=B4=EB=8A=94 =EA=B2=B0=EA=B3=BC=EA=B0=80 =EC= =A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4 =EB= =92=A4=EC=9D=98 =EB=A1=9C=EB=93=9C - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=97=90=EA=B2= =8C=EB=8A=94 =EB=B3=B4=EC=9D=BC =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95= =A9=EB=8B=88=EB=8B=A4. - - =EC=9D=B4 =EC=88=9C=EC=84=9C =EC=84=B8=EC=9A=B0=EA=B8=B0 =EC=A0=9C=EC= =95=BD=EC=97=90 =EB=8C=80=ED=95=9C =EA=B7=B8=EB=A6=BC=EC=9D=84 =EB=B3=B4=EA= =B8=B0 =EC=9C=84=ED=95=B4=EC=84=A0 "=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0= =EB=A6=AC=EC=96=B4 =EC=8B=9C=ED=80=80=EC=8A=A4=EC=9D=98 =EC=98=88" - =EC=84=9C=EB=B8=8C=EC=84=B9=EC=85=98=EC=9D=84 =EC=B0=B8=EA=B3=A0=ED= =95=98=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. - - [!] =EC=B2=AB=EB=B2=88=EC=A7=B8 =EB=A1=9C=EB=93=9C=EB=8A=94 =EB=B0=98= =EB=93=9C=EC=8B=9C _=EC=A3=BC=EC=86=8C_ =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D= =84 =EA=B0=80=EC=A0=B8=EC=95=BC=EC=A7=80 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D= =98=EC=A1=B4=EC=84=B1=EC=9D=84 =EA=B0=80=EC=A0=B8=EC=95=BC - =ED=95=98=EB=8A=94=EA=B2=8C =EC=95=84=EB=8B=98=EC=9D=84 =EC=95=8C=EC= =95=84=EB=91=90=EC=8B=AD=EC=8B=9C=EC=98=A4. =EB=A7=8C=EC=95=BD =EB=91=90= =EB=B2=88=EC=A7=B8 =EB=A1=9C=EB=93=9C=EB=A5=BC =EC=9C=84=ED=95=9C =EC=A3=BC= =EC=86=8C=EA=B0=80 =EC=B2=AB=EB=B2=88=EC=A7=B8 =EB=A1=9C=EB=93=9C=EC=97=90 - =EC=9D=98=EC=A1=B4=EC=A0=81=EC=9D=B4=EC=A7=80=EB=A7=8C =EA=B7=B8 =EC= =9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EC=A1=B0=EA=B1=B4=EC=A0=81=EC=9D=B4=EC= =A7=80 =EA=B7=B8 =EC=A3=BC=EC=86=8C =EC=9E=90=EC=B2=B4=EB=A5=BC =EA=B0=80= =EC=A0=B8=EC=98=A4=EB=8A=94=EA=B2=8C =EC=95=84=EB=8B=88=EB=9D=BC=EB=A9=B4, - =EA=B7=B8=EA=B2=83=EC=9D=80 _=EC=BB=A8=ED=8A=B8=EB=A1=A4_ =EC=9D=98= =EC=A1=B4=EC=84=B1=EC=9D=B4=EA=B3=A0, =EC=9D=B4 =EA=B2=BD=EC=9A=B0=EC=97=90= =EB=8A=94 =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=82=98 =EA=B7=B8= =EB=B3=B4=EB=8B=A4 =EA=B0=95=EB=A0=A5=ED=95=9C - =EB=AC=B4=EC=96=B8=EA=B0=80=EA=B0=80 =ED=95=84=EC=9A=94=ED=95=A9=EB= =8B=88=EB=8B=A4. =EB=8D=94 =EC=9E=90=EC=84=B8=ED=95=9C =EB=82=B4=EC=9A=A9= =EC=9D=84 =EC=9C=84=ED=95=B4=EC=84=9C=EB=8A=94 "=EC=BB=A8=ED=8A=B8=EB=A1=A4= =EC=9D=98=EC=A1=B4=EC=84=B1" =EC=84=9C=EB=B8=8C=EC=84=B9=EC=85=98=EC=9D=84 - =EC=B0=B8=EA=B3=A0=ED=95=98=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB= =8B=88=EB=8B=A4. - - [!] =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC= =EC=96=B4=EB=8A=94 =EB=B3=B4=ED=86=B5 =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC= =EC=96=B4=EB=93=A4=EA=B3=BC =ED=95=A8=EA=BB=98 =EC=A7=9D=EC=9D=84 =EB=A7=9E= =EC=B6=B0 =EC=82=AC=EC=9A=A9=EB=90=98=EC=96=B4=EC=95=BC - =ED=95=A9=EB=8B=88=EB=8B=A4; "SMP =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=A7= =9D=EB=A7=9E=EC=B6=94=EA=B8=B0" =EC=84=9C=EB=B8=8C=EC=84=B9=EC=85=98=EC=9D= =84 =EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - [!] =EC=BB=A4=EB=84=90 v5.9 =EB=A6=B4=EB=A6=AC=EC=A6=88=EC=97=90=EC= =84=9C =EB=AA=85=EC=8B=9C=EC=A0=81 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC= =84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=9C=84=ED=95=9C =EC=BB=A4=EB= =84=90 API =EB=93=A4=EC=9D=B4 - =EC=82=AD=EC=A0=9C=EB=90=98=EC=97=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC= =98=A4=EB=8A=98=EB=82=A0=EC=97=90=EB=8A=94 =EA=B3=B5=EC=9C=A0=EB=90=9C =EB= =B3=80=EC=88=98=EB=93=A4=EC=9D=98 =EB=A1=9C=EB=93=9C=EB=A5=BC =ED=91=9C=EC= =8B=9C=ED=95=98=EB=8A=94 READ_ONCE() =EB=82=98 - rcu_dereference() =EC=99=80 =EA=B0=99=EC=9D=80 API =EB=93=A4=EC=9D=80= =EB=AC=B5=EC=8B=9C=EC=A0=81=EC=9C=BC=EB=A1=9C =EC=A3=BC=EC=86=8C =EC=9D=98= =EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=A0=9C=EA=B3=B5= =ED=95=A9=EB=8B=88=EB=8B=A4. - - - (3) =EC=9D=BD=EA=B8=B0 (=EB=98=90=EB=8A=94 =EB=A1=9C=EB=93=9C) =EB=A9=94= =EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4. - - =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=A3=BC=EC= =86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4 =EA=B8=B0=EB= =8A=A5=EC=9D=98 =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EC=97=90 =EB=8D=94=ED= =95=B4=EC=84=9C =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=B3=B4=EB=8B=A4 =EC=95=9E=EC= =84=9C - =EB=AA=85=EC=8B=9C=EB=90=9C =EB=AA=A8=EB=93=A0 LOAD =EC=98=A4=ED=8D= =BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=B4 =EB=B0=B0=EB=A6=AC=EC=96= =B4 =EB=92=A4=EC=97=90 =EB=AA=85=EC=8B=9C=EB=90=98=EB=8A=94 =EB=AA=A8=EB=93= =A0 LOAD - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EB=B3=B4=EB=8B= =A4 =EB=A8=BC=EC=A0=80 =ED=96=89=ED=95=B4=EC=A7=84 =EA=B2=83=EC=9C=BC=EB=A1= =9C =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB=8B=A4=EB=A5=B8 =EC=BB=B4=ED=8F= =AC=EB=84=8C=ED=8A=B8=EB=93=A4=EC=97=90 =EB=B3=B4=EC=97=AC=EC=A7=88 =EA=B2= =83=EC=9D=84 - =EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. - - =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=A1=9C=EB= =93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=97=90 =ED=96=89=ED= =95=B4=EC=A7=80=EB=8A=94 =EB=B6=80=EB=B6=84=EC=A0=81 =EC=88=9C=EC=84=9C =EC= =84=B8=EC=9A=B0=EA=B8=B0=EC=9E=85=EB=8B=88=EB=8B=A4; =EC=8A=A4=ED=86=A0=EC= =96=B4 - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=97=90 =EB=8C=80=ED= =95=B4=EC=84=9C=EB=8A=94 =EC=96=B4=EB=96=A4 =EC=98=81=ED=96=A5=EB=8F=84 =EB= =81=BC=EC=B9=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - - =EC=9D=BD=EA=B8=B0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=8A=94 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB= =A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=EC=9E=A5=ED=95=98=EB=AF=80=EB=A1=9C =EC= =A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB= =A5=BC - =EB=8C=80=EC=8B=A0=ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4. - - [!] =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=9D=BC= =EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC= =EC=96=B4=EB=93=A4=EA=B3=BC =ED=95=A8=EA=BB=98 =EC=A7=9D=EC=9D=84 =EB=A7=9E= =EC=B6=B0 =EC=82=AC=EC=9A=A9=EB=90=98=EC=96=B4=EC=95=BC - =ED=95=A9=EB=8B=88=EB=8B=A4; "SMP =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=A7= =9D=EB=A7=9E=EC=B6=94=EA=B8=B0" =EC=84=9C=EB=B8=8C=EC=84=B9=EC=85=98=EC=9D= =84 =EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - - (4) =EB=B2=94=EC=9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC= =96=B4. - - =EB=B2=94=EC=9A=A9(general) =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB= =A6=AC=EC=96=B4=EB=8A=94 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=B3=B4=EB=8B=A4 =EC= =95=9E=EC=84=9C =EB=AA=85=EC=8B=9C=EB=90=9C =EB=AA=A8=EB=93=A0 LOAD =EC=99= =80 STORE - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=B4 =EB= =B0=B0=EB=A6=AC=EC=96=B4 =EB=92=A4=EC=97=90 =EB=AA=85=EC=8B=9C=EB=90=9C =EB= =AA=A8=EB=93=A0 LOAD =EC=99=80 STORE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4= =EC=85=98=EB=93=A4=EB=B3=B4=EB=8B=A4 - =EB=A8=BC=EC=A0=80 =EC=88=98=ED=96=89=EB=90=9C =EA=B2=83=EC=9C=BC=EB= =A1=9C =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB=82=98=EB=A8=B8=EC=A7=80 =EC= =BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=EB=93=A4=EC=97=90 =EB=B3=B4=EC=9D=B4=EA= =B2=8C =EB=90=A8=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. - - =EB=B2=94=EC=9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=8A=94 =EB=A1=9C=EB=93=9C=EC=99=80 =EC=8A=A4=ED=86=A0=EC=96=B4 =EB= =AA=A8=EB=91=90=EC=97=90 =EB=8C=80=ED=95=9C =EB=B6=80=EB=B6=84=EC=A0=81 =EC= =88=9C=EC=84=9C =EC=84=B8=EC=9A=B0=EA=B8=B0=EC=9E=85=EB=8B=88=EB=8B=A4. - - =EB=B2=94=EC=9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=8A=94 =EC=9D=BD=EA=B8=B0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB= =A6=AC=EC=96=B4, =EC=93=B0=EA=B8=B0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0= =EB=A6=AC=EC=96=B4 =EB=AA=A8=EB=91=90=EB=A5=BC - =EB=82=B4=EC=9E=A5=ED=95=98=EB=AF=80=EB=A1=9C, =EB=91=90 =EB=B0=B0=EB= =A6=AC=EC=96=B4=EB=A5=BC =EB=AA=A8=EB=91=90 =EB=8C=80=EC=8B=A0=ED=95=A0 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EB=91=90=EA=B0=9C=EC=9D=98 =EB=AA=85=EC=8B=9C= =EC=A0=81=EC=9D=B4=EC=A7=80 =EC=95=8A=EC=9D=80 =ED=83=80=EC=9E=85=EC=9D=B4 = =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (5) ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98. - - =EC=9D=B4 =ED=83=80=EC=9E=85=EC=9D=98 =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EC=9D=80 =EB=8B=A8=EB=B0=A9=ED=96=A5=EC=9D=98 =ED=88=AC=EA= =B3=BC=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=B2=98=EB=9F=BC =EB=8F=99=EC= =9E=91=ED=95=A9=EB=8B=88=EB=8B=A4. ACQUIRE - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EB=92=A4=EC=9D=98 =EB= =AA=A8=EB=93=A0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EB=93=A4=EC=9D=B4 ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D= =B4=EC=85=98 =ED=9B=84=EC=97=90 - =EC=9D=BC=EC=96=B4=EB=82=9C =EA=B2=83=EC=9C=BC=EB=A1=9C =EC=8B=9C=EC= =8A=A4=ED=85=9C=EC=9D=98 =EB=82=98=EB=A8=B8=EC=A7=80 =EC=BB=B4=ED=8F=AC=EB= =84=8C=ED=8A=B8=EB=93=A4=EC=97=90 =EB=B3=B4=EC=9D=B4=EA=B2=8C =EB=90=A0 =EA= =B2=83=EC=9D=B4 =EB=B3=B4=EC=9E=A5=EB=90=A9=EB=8B=88=EB=8B=A4. - LOCK =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EA=B3=BC smp_load_= acquire(), smp_cond_load_acquire() =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC= =85=98=EB=8F=84 - ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=97=90 =ED=8F= =AC=ED=95=A8=EB=90=A9=EB=8B=88=EB=8B=A4. - - ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EC=95=9E=EC=9D= =98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EB=93=A4=EC=9D=80 ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EC=99=84=EB=A3=8C =ED=9B=84=EC=97=90 - =EC=88=98=ED=96=89=EB=90=9C =EA=B2=83=EC=B2=98=EB=9F=BC =EB=B3=B4=EC= =9D=BC =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=80 =EA=B1= =B0=EC=9D=98 =ED=95=AD=EC=83=81 RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D= =B4=EC=85=98=EA=B3=BC =EC=A7=9D=EC=9D=84 =EC=A7=80=EC=96=B4 =EC=82=AC=EC=9A= =A9=EB=90=98=EC=96=B4=EC=95=BC - =ED=95=A9=EB=8B=88=EB=8B=A4. - - - (6) RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98. - - =EC=9D=B4 =ED=83=80=EC=9E=85=EC=9D=98 =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EB=93=A4=EB=8F=84 =EB=8B=A8=EB=B0=A9=ED=96=A5 =ED=88=AC=EA= =B3=BC=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=B2=98=EB=9F=BC =EB=8F=99=EC= =9E=91=ED=95=A9=EB=8B=88=EB=8B=A4. RELEASE - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EC=95=9E=EC=9D=98 =EB= =AA=A8=EB=93=A0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EB=93=A4=EC=9D=80 RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D= =B4=EC=85=98 =EC=A0=84=EC=97=90 =EC=99=84=EB=A3=8C=EB=90=9C - =EA=B2=83=EC=9C=BC=EB=A1=9C =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB= =8B=A4=EB=A5=B8 =EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=EB=93=A4=EC=97=90 =EB= =B3=B4=EC=97=AC=EC=A7=88 =EA=B2=83=EC=9D=B4 =EB=B3=B4=EC=9E=A5=EB=90=A9=EB= =8B=88=EB=8B=A4. UNLOCK =EB=A5=98=EC=9D=98 - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EA=B3=BC smp_s= tore_release() =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=8F=84 RELEA= SE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=98 - =EC=9D=BC=EC=A2=85=EC=9E=85=EB=8B=88=EB=8B=A4. - - RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EB=92=A4=EC=9D= =98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EB=93=A4=EC=9D=80 RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EC=9D=B4 - =EC=99=84=EB=A3=8C=EB=90=98=EA=B8=B0 =EC=A0=84=EC=97=90 =ED=96=89=ED= =95=B4=EC=A7=84 =EA=B2=83=EC=B2=98=EB=9F=BC =EB=B3=B4=EC=9D=BC =EC=88=98 = =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - ACQUIRE =EC=99=80 RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EC=9D=98 =EC=82=AC=EC=9A=A9=EC=9D=80 =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C= =BC=EB=A1=9C =EB=8B=A4=EB=A5=B8 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6= =AC=EC=96=B4=EC=9D=98 - =ED=95=84=EC=9A=94=EC=84=B1=EC=9D=84 =EC=97=86=EC=95=B1=EB=8B=88=EB= =8B=A4. =EB=98=90=ED=95=9C, RELEASE+ACQUIRE =EC=A1=B0=ED=95=A9=EC=9D=80 = =EB=B2=94=EC=9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4= =EC=B2=98=EB=9F=BC - =EB=8F=99=EC=9E=91=ED=95=A0 =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED= =95=98=EC=A7=80 -=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4-. =ED=95=98=EC=A7=80= =EB=A7=8C, =EC=96=B4=EB=96=A4 =EB=B3=80=EC=88=98=EC=97=90 =EB=8C=80=ED=95= =9C RELEASE - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EC=95=9E=EC= =84=9C=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4=EB= =93=A4=EC=9D=98 =EC=88=98=ED=96=89 =EA=B2=B0=EA=B3=BC=EB=8A=94 =EC=9D=B4 RE= LEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 - =EB=92=A4=EC=9D=B4=EC=96=B4 =EA=B0=99=EC=9D=80 =EB=B3=80=EC=88=98=EC= =97=90 =EB=8C=80=ED=95=B4 =EC=88=98=ED=96=89=EB=90=9C ACQUIRE =EC=98=A4=ED= =8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EB=92=A4=EB=94=B0=EB=A5=B4=EB= =8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC - =EC=95=A1=EC=84=B8=EC=8A=A4=EC=97=90=EB=8A=94 =EB=B3=B4=EC=97=AC=EC= =A7=88 =EA=B2=83=EC=9D=B4 =EB=B3=B4=EC=9E=A5=EB=90=A9=EB=8B=88=EB=8B=A4. = =EB=8B=A4=EB=A5=B4=EA=B2=8C =EB=A7=90=ED=95=98=EC=9E=90=EB=A9=B4, =EC=A3=BC= =EC=96=B4=EC=A7=84 =EB=B3=80=EC=88=98=EC=9D=98 - =ED=81=AC=EB=A6=AC=ED=8B=B0=EC=BB=AC =EC=84=B9=EC=85=98=EC=97=90=EC= =84=9C=EB=8A=94, =ED=95=B4=EB=8B=B9 =EB=B3=80=EC=88=98=EC=97=90 =EB=8C=80= =ED=95=9C =EC=95=9E=EC=9D=98 =ED=81=AC=EB=A6=AC=ED=8B=B0=EC=BB=AC =EC=84=B9= =EC=85=98=EC=97=90=EC=84=9C=EC=9D=98 =EB=AA=A8=EB=93=A0 - =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=B4 =EC=99=84=EB=A3=8C=EB= =90=98=EC=97=88=EC=9D=84 =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95=A9=EB= =8B=88=EB=8B=A4. - - =EC=A6=89, ACQUIRE =EB=8A=94 =EC=B5=9C=EC=86=8C=ED=95=9C=EC=9D=98 "= =EC=B7=A8=EB=93=9D" =EB=8F=99=EC=9E=91=EC=B2=98=EB=9F=BC, =EA=B7=B8=EB=A6= =AC=EA=B3=A0 RELEASE =EB=8A=94 =EC=B5=9C=EC=86=8C=ED=95=9C=EC=9D=98 "=EA=B3= =B5=EA=B0=9C" - =EC=B2=98=EB=9F=BC =EB=8F=99=EC=9E=91=ED=95=9C=EB=8B=A4=EB=8A=94 =EC= =9D=98=EB=AF=B8=EC=9E=85=EB=8B=88=EB=8B=A4. - -atomic_t.txt =EC=97=90 =EC=84=A4=EB=AA=85=EB=90=9C =EC=96=B4=ED=86=A0=EB= =AF=B9 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4 =EC=A4=91 =EC= =9D=BC=EB=B6=80=EB=8A=94 =EC=99=84=EC=A0=84=ED=9E=88 =EC=88=9C=EC=84=9C=EC= =9E=A1=ED=9E=8C =EA=B2=83=EB=93=A4=EA=B3=BC -(=EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=98=EC=A7=80= =EC=95=8A=EB=8A=94) =EC=99=84=ED=99=94=EB=90=9C =EC=88=9C=EC=84=9C=EC=9D= =98 =EA=B2=83=EB=93=A4 =EC=99=B8=EC=97=90 ACQUIRE =EC=99=80 RELEASE =EB=B6= =80=EB=A5=98=EC=9D=98 -=EA=B2=83=EB=93=A4=EB=8F=84 =EC=A1=B4=EC=9E=AC=ED=95=A9=EB=8B=88=EB=8B=A4.= =EB=A1=9C=EB=93=9C=EC=99=80 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC =EB=AA= =A8=EB=91=90 =EC=88=98=ED=96=89=ED=95=98=EB=8A=94 =EC=A1=B0=ED=95=A9=EB=90= =9C =EC=96=B4=ED=86=A0=EB=AF=B9 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EC=97=90=EC=84=9C, -ACQUIRE =EB=8A=94 =ED=95=B4=EB=8B=B9 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4= =EC=85=98=EC=9D=98 =EB=A1=9C=EB=93=9C =EB=B6=80=EB=B6=84=EC=97=90=EB=A7=8C = =EC=A0=81=EC=9A=A9=EB=90=98=EA=B3=A0 RELEASE =EB=8A=94 =ED=95=B4=EB=8B=B9 -=EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=98 =EC=8A=A4=ED=86=A0= =EC=96=B4 =EB=B6=80=EB=B6=84=EC=97=90=EB=A7=8C =EC=A0=81=EC=9A=A9=EB=90=A9= =EB=8B=88=EB=8B=A4. - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=80 = =EB=91=90 CPU =EA=B0=84, =EB=98=90=EB=8A=94 CPU =EC=99=80 =EB=94=94=EB=B0= =94=EC=9D=B4=EC=8A=A4 =EA=B0=84=EC=97=90 =EC=83=81=ED=98=B8=EC=9E=91=EC=9A= =A9=EC=9D=98 =EA=B0=80=EB=8A=A5=EC=84=B1=EC=9D=B4 =EC=9E=88=EC=9D=84 -=EB=95=8C=EC=97=90=EB=A7=8C =ED=95=84=EC=9A=94=ED=95=A9=EB=8B=88=EB=8B=A4.= =EB=A7=8C=EC=95=BD =EC=96=B4=EB=96=A4 =EC=BD=94=EB=93=9C=EC=97=90 =EA=B7= =B8=EB=9F=B0 =EC=83=81=ED=98=B8=EC=9E=91=EC=9A=A9=EC=9D=B4 =EC=97=86=EC=9D= =84 =EA=B2=83=EC=9D=B4 =EB=B3=B4=EC=9E=A5=EB=90=9C=EB=8B=A4=EB=A9=B4, =ED= =95=B4=EB=8B=B9 -=EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC = =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=A0 =ED=95=84= =EC=9A=94=EA=B0=80 =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 _=EC=B5=9C=EC=86=8C=ED=95=9C=EC=9D=98= _ =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EB=93=A4=EC=9E=84=EC=9D=84 =EC=95=8C= =EC=95=84=EB=91=90=EC=84=B8=EC=9A=94. =EB=8B=A4=EB=A5=B8 =EC=95=84=ED=82= =A4=ED=85=8D=EC=B3=90=EC=97=90=EC=84=9C=EB=8A=94 =EB=8D=94 =EA=B0=95=EB=A0= =A5=ED=95=9C -=EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=A0 = =EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4=EB=A7=8C, =EA=B7=B8= =EB=9F=B0 =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EC=9D=80 =EC=95=84=ED=82=A4= =ED=85=8D=EC=B3=90 =EC=A2=85=EC=86=8D=EC=A0=81 =EC=BD=94=EB=93=9C =EC=9D=B4= =EC=99=B8=EC=9D=98 -=EB=B6=80=EB=B6=84=EC=97=90=EC=84=9C=EB=8A=94 =EC=8B=A0=EB=A2=B0=EB=90=98= =EC=A7=80 _=EC=95=8A=EC=9D=84_ =EA=B2=81=EB=8B=88=EB=8B=A4. - - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=97=90 =EB=8C=80= =ED=95=B4 =EA=B0=80=EC=A0=95=ED=95=B4=EC=84=A0 =EC=95=88=EB=90=A0 =EA=B2=83 -------------------------------------- - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90 =EB=A9=94=EB=AA=A8=EB=A6=AC= =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=B4 =EB=B3=B4=EC=9E=A5=ED=95=98= =EC=A7=80 =EC=95=8A=EB=8A=94 =EA=B2=83=EB=93=A4=EC=9D=B4 =EC=9E=88=EC=8A=B5= =EB=8B=88=EB=8B=A4: - - (*) =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=95=9E=EC= =97=90=EC=84=9C =EB=AA=85=EC=8B=9C=EB=90=9C =EC=96=B4=EB=96=A4 =EB=A9=94=EB= =AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4=EB=8F=84 =EB=A9=94=EB=AA=A8=EB= =A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 =EB=AA=85=EB=A0=B9=EC=9D=98 =EC=88=98=ED= =96=89 - =EC=99=84=EB=A3=8C =EC=8B=9C=EC=A0=90=EA=B9=8C=EC=A7=80 _=EC=99=84=EB= =A3=8C_ =EB=90=A0 =EA=B2=83=EC=9D=B4=EB=9E=80 =EB=B3=B4=EC=9E=A5=EC=9D=80 = =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4; =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 = =ED=95=98=EB=8A=94 =EC=9D=BC=EC=9D=80 CPU =EC=9D=98 - =EC=95=A1=EC=84=B8=EC=8A=A4 =ED=81=90=EC=97=90 =ED=8A=B9=EC=A0=95 =ED= =83=80=EC=9E=85=EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=80 =EB= =84=98=EC=9D=84 =EC=88=98 =EC=97=86=EB=8A=94 =EC=84=A0=EC=9D=84 =EA=B8=8B= =EB=8A=94 =EA=B2=83=EC=9C=BC=EB=A1=9C =EC=83=9D=EA=B0=81=EB=90=A0 =EC=88=98 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - (*) =ED=95=9C CPU =EC=97=90=EC=84=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0= =B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=88=98=ED=96=89=ED=95=98=EB=8A=94=EA=B2= =8C =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB=8B=A4=EB=A5=B8 CPU =EB=82=98 = =ED=95=98=EB=93=9C=EC=9B=A8=EC=96=B4=EC=97=90 - =EC=96=B4=EB=96=A4 =EC=A7=81=EC=A0=91=EC=A0=81=EC=9D=B8 =EC=98=81=ED= =96=A5=EC=9D=84 =EB=81=BC=EC=B9=9C=EB=8B=A4=EB=8A=94 =EB=B3=B4=EC=9E=A5=EC= =9D=80 =EC=A1=B4=EC=9E=AC=ED=95=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB= =8B=A4. =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=88=98=ED=96=89=EC=9D=B4 - =EB=A7=8C=EB=93=9C=EB=8A=94 =EA=B0=84=EC=A0=91=EC=A0=81 =EC=98=81=ED= =96=A5=EC=9D=80 =EB=91=90=EB=B2=88=EC=A7=B8 CPU =EA=B0=80 =EC=B2=AB=EB=B2= =88=EC=A7=B8 CPU =EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=98 = =EA=B2=B0=EA=B3=BC=EB=A5=BC - =EB=B0=94=EB=9D=BC=EB=B3=B4=EB=8A=94 =EC=88=9C=EC=84=9C=EA=B0=80 =EB= =90=A9=EB=8B=88=EB=8B=A4=EB=A7=8C, =EB=8B=A4=EC=9D=8C =ED=95=AD=EB=AA=A9=EC= =9D=84 =EB=B3=B4=EC=84=B8=EC=9A=94: - - (*) =EC=B2=AB=EB=B2=88=EC=A7=B8 CPU =EA=B0=80 =EB=91=90=EB=B2=88=EC=A7=B8= CPU =EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4=EB= =93=A4=EC=9D=98 =EA=B2=B0=EA=B3=BC=EB=A5=BC =EB=B0=94=EB=9D=BC=EB=B3=BC =EB= =95=8C, _=EC=84=A4=EB=A0=B9_ - =EB=91=90=EB=B2=88=EC=A7=B8 CPU =EA=B0=80 =EB=A9=94=EB=AA=A8=EB=A6=AC= =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=9C=EB=8B=A4 = =ED=95=B4=EB=8F=84, =EC=B2=AB=EB=B2=88=EC=A7=B8 CPU _=EB=98=90=ED=95=9C_ = =EA=B7=B8=EC=97=90 =EB=A7=9E=EB=8A=94 - =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC= =82=AC=EC=9A=A9=ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94=EB=8B=A4=EB=A9=B4 ("SM= P =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=A7=9D=EB=A7=9E=EC=B6=94=EA=B8=B0" =EC=84= =9C=EB=B8=8C=EC=84=B9=EC=85=98=EC=9D=84 - =EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94) =EA=B7=B8 =EA=B2=B0=EA= =B3=BC=EA=B0=80 =EC=98=AC=EB=B0=94=EB=A5=B8 =EC=88=9C=EC=84=9C=EB=A1=9C =EB= =B3=B4=EC=97=AC=EC=A7=84=EB=8B=A4=EB=8A=94 =EB=B3=B4=EC=9E=A5=EC=9D=80 =EC= =97=86=EC=8A=B5=EB=8B=88=EB=8B=A4. - - (*) CPU =EB=B0=94=EA=B9=A5=EC=9D=98 =ED=95=98=EB=93=9C=EC=9B=A8=EC=96=B4[= *] =EA=B0=80 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93= =A4=EC=9D=98 =EC=88=9C=EC=84=9C=EB=A5=BC =EB=B0=94=EA=BE=B8=EC=A7=80 =EC=95= =8A=EB=8A=94=EB=8B=A4=EB=8A=94 =EB=B3=B4=EC=9E=A5=EC=9D=80 - =EC=A1=B4=EC=9E=AC=ED=95=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB= =8B=A4. CPU =EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80=EC=84=B1 =EB=A9=94=EC=BB= =A4=EB=8B=88=EC=A6=98=EC=9D=80 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6= =AC=EC=96=B4=EC=9D=98 =EA=B0=84=EC=A0=91=EC=A0=81 - =EC=98=81=ED=96=A5=EC=9D=84 CPU =EC=82=AC=EC=9D=B4=EC=97=90 =EC=A0=84= =ED=8C=8C=ED=95=98=EA=B8=B4 =ED=95=98=EC=A7=80=EB=A7=8C, =EC=88=9C=EC=84=9C= =EB=8C=80=EB=A1=9C =EC=A0=84=ED=8C=8C=ED=95=98=EC=A7=80=EB=8A=94 =EC=95=8A= =EC=9D=84 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - [*] =EB=B2=84=EC=8A=A4 =EB=A7=88=EC=8A=A4=ED=84=B0=EB=A7=81 DMA =EC=99=80= =EC=9D=BC=EA=B4=80=EC=84=B1=EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB=8A=94 = =EB=8B=A4=EC=9D=8C=EC=9D=84 =EC=B0=B8=EA=B3=A0=ED=95=98=EC=8B=9C=EA=B8=B0 = =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4: - - Documentation/driver-api/pci/pci.rst - Documentation/core-api/dma-api-howto.rst - Documentation/core-api/dma-api.rst - - -=EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4= (=EC=97=AD=EC=82=AC=EC=A0=81) ---------------------------- - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90 v4.15 =EA=B8=B0=EC=A4=80=EC= =9C=BC=EB=A1=9C, smp_mb() =EA=B0=80 DEC Alpha =EC=9A=A9 READ_ONCE() =EC=BD= =94=EB=93=9C=EC=97=90 -=EC=B6=94=EA=B0=80=EB=90=98=EC=97=88=EB=8A=94=EB=8D=B0, =EC=9D=B4=EB=8A=94= =EC=9D=B4 =EC=84=B9=EC=85=98=EC=97=90 =EC=A3=BC=EC=9D=98=EB=A5=BC =EA=B8= =B0=EC=9A=B8=EC=97=AC=EC=95=BC =ED=95=98=EB=8A=94 =EC=82=AC=EB=9E=8C=EB=93= =A4=EC=9D=80 DEC Alpha =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90 -=EC=A0=84=EC=9A=A9 =EC=BD=94=EB=93=9C=EB=A5=BC =EB=A7=8C=EB=93=9C=EB=8A=94= =EC=82=AC=EB=9E=8C=EB=93=A4=EA=B3=BC READ_ONCE() =EC=9E=90=EC=B2=B4=EB=A5= =BC =EB=A7=8C=EB=93=9C=EB=8A=94 =EC=82=AC=EB=9E=8C=EB=93=A4 =EB=BF=90=EC=9E= =84=EC=9D=84 =EC=9D=98=EB=AF=B8=ED=95=A9=EB=8B=88=EB=8B=A4. -=EA=B7=B8=EB=9F=B0 =EB=B6=84=EB=93=A4=EC=9D=84 =EC=9C=84=ED=95=B4, =EA=B7= =B8=EB=A6=AC=EA=B3=A0 =EC=97=AD=EC=82=AC=EC=97=90 =EA=B4=80=EC=8B=AC =EC=9E= =88=EB=8A=94 =EB=B6=84=EB=93=A4=EC=9D=84 =EC=9C=84=ED=95=B4, =EC=97=AC=EA= =B8=B0 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 -=EB=B0=B0=EB=A6=AC=EC=96=B4=EC=97=90 =EB=8C=80=ED=95=9C =EC=9D=B4=EC=95=BC= =EA=B8=B0=EB=A5=BC =EC=A0=81=EC=8A=B5=EB=8B=88=EB=8B=A4. - -[!] =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EB=A1=9C=EB= =93=9C=EC=97=90=EC=84=9C =EB=A1=9C=EB=93=9C=EB=A1=9C=EC=99=80 =EB=A1=9C=EB= =93=9C=EC=97=90=EC=84=9C =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A1=9C=EC=9D=98 =EA= =B4=80=EA=B3=84=EB=93=A4 =EB=AA=A8=EB=91=90=EC=97=90=EC=84=9C -=EB=82=98=ED=83=80=EB=82=98=EC=A7=80=EB=A7=8C, =EC=A3=BC=EC=86=8C =EC=9D= =98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=A1=9C=EB=93= =9C=EC=97=90=EC=84=9C =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A1=9C=EC=9D=98 =EC=83= =81=ED=99=A9=EC=97=90=EC=84=9C=EB=8A=94 =ED=95=84=EC=9A=94=ED=95=98=EC=A7= =80 -=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4= =EC=9D=98 =EC=82=AC=EC=9A=A9=EC=97=90 =EC=9E=88=EC=96=B4 =EC=A7=80=EC=BC=9C= =EC=95=BC =ED=95=98=EB=8A=94 =EC=82=AC=ED=95=AD=EB=93=A4=EC=9D=80 =EC=95=BD= =EA=B0=84 =EB=AF=B8=EB=AC=98=ED=95=98=EA=B3=A0, =EB=8D=B0=EC=9D=B4=ED=84=B0 -=EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =EC=82=AC= =EC=9A=A9=EB=90=98=EC=96=B4=EC=95=BC =ED=95=98=EB=8A=94 =EC=83=81=ED=99=A9= =EB=8F=84 =ED=95=AD=EC=83=81 =EB=AA=85=EB=B0=B1=ED=95=98=EC=A7=80=EB=8A=94 = =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=84=A4=EB=AA=85=EC=9D=84 =EC=9C= =84=ED=95=B4 -=EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=9D=B4=EB=B2=A4=ED=8A=B8 =EC=8B=9C=ED=80=80= =EC=8A=A4=EB=A5=BC =EC=83=9D=EA=B0=81=ED=95=B4 =EB=B4=85=EC=8B=9C=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D - { A =3D=3D 1, B =3D=3D 2, C =3D=3D 3, P =3D=3D &A, Q =3D=3D &C } - B =3D 4; - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - WRITE_ONCE(P, &B) - Q =3D READ_ONCE_OLD(P); - D =3D *Q; - -[!] READ_ONCE_OLD() =EB=8A=94 4.15 =EC=BB=A4=EB=84=90 =EC=A0=84=EC=9D=98 = =EB=B2=84=EC=A0=84=EC=97=90=EC=84=9C=EC=9D=98, =EC=A3=BC=EC=86=8C =EC=9D=98= =EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=ED=8F=AC= =ED=95=98=EC=A7=80 -=EC=95=8A=EB=8A=94 READ_ONCE() =EC=97=90 =ED=95=B4=EB=8B=B9=ED=95=A9=EB=8B= =88=EB=8B=A4. - -=EC=97=AC=EA=B8=B0=EC=97=94 =EB=B6=84=EB=AA=85=ED=95=9C =EC=A3=BC=EC=86=8C= =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=B4 =EC=A1=B4=EC=9E=AC=ED=95=98=EB=AF=80= =EB=A1=9C, =EC=9D=B4 =EC=8B=9C=ED=80=80=EC=8A=A4=EA=B0=80 =EB=81=9D=EB=82= =AC=EC=9D=84 =EB=95=8C Q =EB=8A=94 &A =EB=98=90=EB=8A=94 &B -=EC=9D=BC =EA=B2=83=EC=9D=B4=EA=B3=A0, =EB=94=B0=EB=9D=BC=EC=84=9C: - - (Q =3D=3D &A) =EB=8A=94 (D =3D=3D 1) =EB=A5=BC, - (Q =3D=3D &B) =EB=8A=94 (D =3D=3D 4) =EB=A5=BC =EC=9D=98=EB=AF=B8=ED=95= =A9=EB=8B=88=EB=8B=A4. - -=ED=95=98=EC=A7=80=EB=A7=8C! CPU 2 =EB=8A=94 B =EC=9D=98 =EC=97=85=EB=8D= =B0=EC=9D=B4=ED=8A=B8=EB=A5=BC =EC=9D=B8=EC=8B=9D=ED=95=98=EA=B8=B0 =EC=A0= =84=EC=97=90 P =EC=9D=98 =EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=EB=A5=BC =EC= =9D=B8=EC=8B=9D=ED=95=A0 =EC=88=98 =EC=9E=88=EA=B3=A0, -=EB=94=B0=EB=9D=BC=EC=84=9C =EB=8B=A4=EC=9D=8C=EC=9D=98 =EA=B2=B0=EA=B3=BC= =EA=B0=80 =EA=B0=80=EB=8A=A5=ED=95=A9=EB=8B=88=EB=8B=A4: - - (Q =3D=3D &B) and (D =3D=3D 2) ???? - -=EC=9D=B4=EB=9F=B0 =EA=B2=B0=EA=B3=BC=EB=8A=94 =EC=9D=BC=EA=B4=80=EC=84=B1= =EC=9D=B4=EB=82=98 =EC=9D=B8=EA=B3=BC =EA=B4=80=EA=B3=84 =EC=9C=A0=EC=A7=80= =EA=B0=80 =EC=8B=A4=ED=8C=A8=ED=95=9C =EA=B2=83=EC=B2=98=EB=9F=BC =EB=B3=B4= =EC=9D=BC =EC=88=98=EB=8F=84 =EC=9E=88=EA=B2=A0=EC=A7=80=EB=A7=8C, -=EA=B7=B8=EB=A0=87=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4, =EA=B7= =B8=EB=A6=AC=EA=B3=A0 =EC=9D=B4 =ED=98=84=EC=83=81=EC=9D=80 (DEC Alpha =EC= =99=80 =EA=B0=99=EC=9D=80) =EC=97=AC=EB=9F=AC CPU =EC=97=90=EC=84=9C =EC=8B= =A4=EC=A0=9C=EB=A1=9C -=EB=B0=9C=EA=B2=AC=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EC=9D=B4 =EB=AC=B8=EC=A0=9C =EC=83=81=ED=99=A9=EC=9D=84 =EC=A0=9C=EB=8C= =80=EB=A1=9C =ED=95=B4=EA=B2=B0=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4, READ_= ONCE() =EB=8A=94 =EC=BB=A4=EB=84=90 v4.15 =EB=A6=B4=EB=A6=AC=EC=A6=88 =EB= =B6=80=ED=84=B0 -=EB=AC=B5=EC=8B=9C=EC=A0=81 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1= =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=A0=9C=EA=B3=B5=ED=95=A9=EB=8B=88= =EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D - { A =3D=3D 1, B =3D=3D 2, C =3D=3D 3, P =3D=3D &A, Q =3D=3D &C } - B =3D 4; - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - WRITE_ONCE(P, &B); - Q =3D READ_ONCE(P); - <=EB=AC=B5=EC=8B=9C=EC=A0=81 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1= =B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4> - D =3D *Q; - -=EC=9D=B4 =EB=B3=80=EA=B2=BD=EC=9D=80 =EC=95=9E=EC=9D=98 =EC=B2=98=EC=9D= =8C =EB=91=90=EA=B0=80=EC=A7=80 =EA=B2=B0=EA=B3=BC =EC=A4=91 =ED=95=98=EB= =82=98=EB=A7=8C=EC=9D=B4 =EB=B0=9C=EC=83=9D=ED=95=A0 =EC=88=98 =EC=9E=88=EA= =B3=A0, =EC=84=B8=EB=B2=88=EC=A7=B8=EC=9D=98 =EA=B2=B0=EA=B3=BC=EB=8A=94 -=EB=B0=9C=EC=83=9D=ED=95=A0 =EC=88=98 =EC=97=86=EB=8F=84=EB=A1=9D =ED=95= =A9=EB=8B=88=EB=8B=A4. - - -[!] =EC=9D=B4 =EC=83=81=EB=8B=B9=ED=9E=88 =EB=B0=98=EC=A7=81=EA=B4=80=EC= =A0=81=EC=9D=B8 =EC=83=81=ED=99=A9=EC=9D=80 =EB=B6=84=EB=A6=AC=EB=90=9C =EC= =BA=90=EC=8B=9C=EB=A5=BC =EA=B0=80=EC=A7=80=EB=8A=94 =EA=B8=B0=EA=B3=84=EB= =93=A4=EC=97=90=EC=84=9C =EA=B0=80=EC=9E=A5 =EC=9E=98 -=EB=B0=9C=EC=83=9D=ED=95=98=EB=8A=94=EB=8D=B0, =EC=98=88=EB=A5=BC =EB=93= =A4=EB=A9=B4 =ED=95=9C =EC=BA=90=EC=8B=9C =EB=B1=85=ED=81=AC=EB=8A=94 =EC= =A7=9D=EC=88=98 =EB=B2=88=ED=98=B8=EC=9D=98 =EC=BA=90=EC=8B=9C =EB=9D=BC=EC= =9D=B8=EB=93=A4=EC=9D=84 =EC=B2=98=EB=A6=AC=ED=95=98=EA=B3=A0, =EB=8B=A4=EB= =A5=B8 -=EB=B1=85=ED=81=AC=EB=8A=94 =ED=99=80=EC=88=98 =EB=B2=88=ED=98=B8=EC=9D=98= =EC=BA=90=EC=8B=9C =EB=9D=BC=EC=9D=B8=EB=93=A4=EC=9D=84 =EC=B2=98=EB=A6=AC= =ED=95=98=EB=8A=94 =EA=B2=BD=EC=9A=B0=EC=9E=84=EC=9D=84 =EC=95=8C=EC=95=84= =EB=91=90=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. =ED=8F= =AC=EC=9D=B8=ED=84=B0 -P =EB=8A=94 =EC=A7=9D=EC=88=98 =EB=B2=88=ED=98=B8 =EC=BA=90=EC=8B=9C =EB= =9D=BC=EC=9D=B8=EC=97=90 =EC=A0=80=EC=9E=A5=EB=90=98=EC=96=B4 =EC=9E=88=EA= =B3=A0, =EB=B3=80=EC=88=98 B =EB=8A=94 =ED=99=80=EC=88=98 =EB=B2=88=ED=98= =B8 =EC=BA=90=EC=8B=9C =EB=9D=BC=EC=9D=B8=EC=97=90 -=EC=A0=80=EC=9E=A5=EB=90=98=EC=96=B4 =EC=9E=88=EC=9D=84 =EC=88=98 =EC=9E= =88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=97=AC=EA=B8=B0=EC=84=9C =EA=B0=92=EC= =9D=84 =EC=9D=BD=EC=96=B4=EC=98=A4=EB=8A=94 CPU =EC=9D=98 =EC=BA=90=EC=8B= =9C=EC=9D=98 =ED=99=80=EC=88=98 =EB=B2=88=ED=98=B8 =EC=B2=98=EB=A6=AC -=EB=B1=85=ED=81=AC=EB=8A=94 =EC=97=B4=EC=8B=AC=ED=9E=88 =EC=9D=BC=EA=B0=90= =EC=9D=84 =EC=B2=98=EB=A6=AC=EC=A4=91=EC=9D=B8 =EB=B0=98=EB=A9=B4 =ED=99=80= =EC=88=98 =EB=B2=88=ED=98=B8 =EC=B2=98=EB=A6=AC =EB=B1=85=ED=81=AC=EB=8A=94= =ED=95=A0 =EC=9D=BC =EC=97=86=EC=9D=B4 =ED=95=9C=EA=B0=80=ED=95=9C -=EC=A4=91=EC=9D=B4=EB=9D=BC=EB=A9=B4 =ED=8F=AC=EC=9D=B8=ED=84=B0 P (&B) = =EC=9D=98 =EC=83=88=EB=A1=9C=EC=9A=B4 =EA=B0=92=EA=B3=BC =EB=B3=80=EC=88=98= B =EC=9D=98 =EA=B8=B0=EC=A1=B4 =EA=B0=92 (2) =EB=A5=BC =EB=B3=BC =EC=88=98= =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EC=9D=98=EC=A1=B4=EC=A0=81 =EC=93=B0=EA=B8=B0=EB=93=A4=EC=9D=98 =EC=88=9C= =EC=84=9C=EB=A5=BC =EB=A7=9E=EC=B6=94=EB=8A=94=EB=8D=B0=EC=97=90=EB=8A=94 = =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4= =EA=B0=80 =ED=95=84=EC=9A=94=EC=B9=98 =EC=95=8A=EC=9D=80=EB=8D=B0, =EC=9D= =B4=EB=8A=94 -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=9D=B4 =EC=A7=80=EC=9B=90= =ED=95=98=EB=8A=94 CPU =EB=93=A4=EC=9D=80 (1) =EC=93=B0=EA=B8=B0=EA=B0=80 = =EC=A0=95=EB=A7=90=EB=A1=9C =EC=9D=BC=EC=96=B4=EB=82=A0=EC=A7=80, (2) =EC= =93=B0=EA=B8=B0=EA=B0=80 =EC=96=B4=EB=94=94=EC=97=90 -=EC=9D=B4=EB=A3=A8=EC=96=B4=EC=A7=88=EC=A7=80, =EA=B7=B8=EB=A6=AC=EA=B3=A0= (3) =EC=93=B0=EC=97=AC=EC=A7=88 =EA=B0=92=EC=9D=84 =ED=99=95=EC=8B=A4=ED= =9E=88 =EC=95=8C=EA=B8=B0 =EC=A0=84=EA=B9=8C=EC=A7=80=EB=8A=94 =EC=93=B0=EA= =B8=B0=EB=A5=BC =EC=88=98=ED=96=89=ED=95=98=EC=A7=80 =EC=95=8A=EA=B8=B0 -=EB=95=8C=EB=AC=B8=EC=9E=85=EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7=80=EB=A7= =8C "=EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1" =EC=84=B9=EC= =85=98=EA=B3=BC -Documentation/RCU/rcu_dereference.rst =ED=8C=8C=EC=9D=BC=EC=9D=84 =EC=A3= =BC=EC=9D=98 =EA=B9=8A=EA=B2=8C =EC=9D=BD=EC=96=B4 =EC=A3=BC=EC=8B=9C=EA=B8= =B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4: -=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EB=A7=A4=EC=9A=B0 =EC=B0=BD= =EC=9D=98=EC=A0=81=EC=9D=B8 =EB=A7=8E=EC=9D=80 =EB=B0=A9=EB=B2=95=EC=9C=BC= =EB=A1=9C =EC=A2=85=EC=86=8D=EC=84=B1=EC=9D=84 =EA=B9=B0 =EC=88=98 =EC=9E= =88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D - { A =3D=3D 1, B =3D=3D 2, C =3D 3, P =3D=3D &A, Q =3D=3D &C } - B =3D 4; - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - WRITE_ONCE(P, &B); - Q =3D READ_ONCE_OLD(P); - WRITE_ONCE(*Q, 5); - -=EB=94=B0=EB=9D=BC=EC=84=9C, Q =EB=A1=9C=EC=9D=98 =EC=9D=BD=EA=B8=B0=EC=99= =80 *Q =EB=A1=9C=EC=9D=98 =EC=93=B0=EA=B8=B0 =EC=82=AC=EC=9D=B4=EC=97=90=EB= =8A=94 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC= =96=B4=EA=B0=80 =ED=95=84=EC=9A=94=EC=B9=98 -=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=8B=AC=EB=A6=AC =EB=A7=90=ED=95= =98=EB=A9=B4, =EC=98=A4=EB=8A=98=EB=82=A0=EC=9D=98 READ_ONCE() =EC=9D=98 = =EB=AC=B5=EC=8B=9C=EC=A0=81 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 = =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 -=EC=97=86=EB=8D=94=EB=9D=BC=EB=8F=84 =EB=8B=A4=EC=9D=8C =EA=B2=B0=EA=B3=BC= =EB=8A=94 =EC=83=9D=EA=B8=B0=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (Q =3D=3D &B) && (B =3D=3D 4) - -=EC=9D=B4=EB=9F=B0 =ED=8C=A8=ED=84=B4=EC=9D=80 =EB=93=9C=EB=AC=BC=EA=B2=8C= =EC=82=AC=EC=9A=A9=EB=90=98=EC=96=B4=EC=95=BC =ED=95=A8=EC=9D=84 =EC=95=8C= =EC=95=84 =EB=91=90=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4.= =EB=AC=B4=EC=97=87=EB=B3=B4=EB=8B=A4=EB=8F=84, =EC=9D=98=EC=A1=B4=EC=84= =B1 -=EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=98 =EC=9D=98=EB=8F=84=EB=8A=94= =EC=93=B0=EA=B8=B0 =EC=9E=91=EC=97=85=EC=9D=84 -=EC=98=88=EB=B0=A9- =ED=95= =B4=EC=84=9C =EA=B7=B8=EB=A1=9C =EC=9D=B8=ED=95=B4 =EB=B0=9C=EC=83=9D=ED=95= =98=EB=8A=94 =EB=B9=84=EC=8B=BC =EC=BA=90=EC=8B=9C =EB=AF=B8=EC=8A=A4=EB=8F= =84 -=EC=97=86=EC=95=A0=EB=A0=A4=EB=8A=94 =EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4.= =EC=9D=B4 =ED=8C=A8=ED=84=B4=EC=9D=80 =EB=93=9C=EB=AC=BC=EA=B2=8C =EB=B0= =9C=EC=83=9D=ED=95=98=EB=8A=94 =EC=97=90=EB=9F=AC =EC=A1=B0=EA=B1=B4 =EA=B0= =99=EC=9D=80=EA=B2=83=EB=93=A4=EC=9D=84 =EA=B8=B0=EB=A1=9D=ED=95=98=EB=8A= =94=EB=8D=B0 -=EC=82=AC=EC=9A=A9=EB=90=A0 =EC=88=98 =EC=9E=88=EC=9C=BC=EB=A9=B0, CPU=EC= =9D=98 =EC=9E=90=EC=97=B0=EC=A0=81=EC=9D=B8 =EC=88=9C=EC=84=9C =EB=B3=B4=EC= =9E=A5=EC=9D=B4 =EA=B7=B8=EB=9F=B0 =EA=B8=B0=EB=A1=9D=EB=93=A4=EC=9D=84 =EC= =82=AC=EB=9D=BC=EC=A7=80=EC=A7=80 =EC=95=8A=EA=B2=8C -=ED=95=B4=EC=A4=8D=EB=8B=88=EB=8B=A4. - - -=EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1=EC=97=90 =EC=9D=98=ED=95=B4= =EC=A0=9C=EA=B3=B5=EB=90=98=EB=8A=94 =EC=9D=B4 =EC=88=9C=EC=84=9C=EA=B7=9C= =EC=B9=99=EC=9D=80 =EC=9D=B4=EB=A5=BC =ED=8F=AC=ED=95=A8=ED=95=98=EA=B3=A0 = =EC=9E=88=EB=8A=94 CPU =EC=97=90 -=EC=A7=80=EC=97=AD=EC=A0=81=EC=9E=84=EC=9D=84 =EC=95=8C=EC=95=84=EB=91=90= =EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. =EB=8D=94 =EB=A7= =8E=EC=9D=80 =EC=A0=95=EB=B3=B4=EB=A5=BC =EC=9C=84=ED=95=B4=EC=84=A0 "Multi= copy =EC=9B=90=EC=9E=90=EC=84=B1" -=EC=84=B9=EC=85=98=EC=9D=84 =EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - -=EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4= =EB=8A=94 =EB=A7=A4=EC=9A=B0 =EC=A4=91=EC=9A=94=ED=95=9C=EB=8D=B0, =EC=98= =88=EB=A5=BC =EB=93=A4=EC=96=B4 RCU =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC= =84=9C =EA=B7=B8=EB=A0=87=EC=8A=B5=EB=8B=88=EB=8B=A4. -include/linux/rcupdate.h =EC=9D=98 rcu_assign_pointer() =EC=99=80 rcu_dere= ference() =EB=A5=BC -=EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. =EC=9D=B4=EA=B2=83=EB=93= =A4=EC=9D=80 RCU =EB=A1=9C =EA=B4=80=EB=A6=AC=EB=90=98=EB=8A=94 =ED=8F=AC= =EC=9D=B8=ED=84=B0=EC=9D=98 =ED=83=80=EA=B2=9F=EC=9D=84 =ED=98=84=EC=9E=AC = =ED=83=80=EA=B2=9F=EC=97=90=EC=84=9C =EC=88=98=EC=A0=95=EB=90=9C -=EC=83=88=EB=A1=9C=EC=9A=B4 =ED=83=80=EA=B2=9F=EC=9C=BC=EB=A1=9C =EB=B0=94= =EA=BE=B8=EB=8A=94 =EC=9E=91=EC=97=85=EC=97=90=EC=84=9C =EC=83=88=EB=A1=9C = =EC=88=98=EC=A0=95=EB=90=9C =ED=83=80=EA=B2=9F=EC=9D=B4 =EC=B4=88=EA=B8=B0= =ED=99=94=EA=B0=80 =EC=99=84=EB=A3=8C=EB=90=98=EC=A7=80 =EC=95=8A=EC=9D=80 = =EC=B1=84=EB=A1=9C -=EB=B3=B4=EC=97=AC=EC=A7=80=EB=8A=94 =EC=9D=BC=EC=9D=B4 =EC=9D=BC=EC=96=B4= =EB=82=98=EC=A7=80 =EC=95=8A=EA=B2=8C =ED=95=B4=EC=A4=8D=EB=8B=88=EB=8B=A4. - -=EB=8D=94 =EB=A7=8E=EC=9D=80 =EC=98=88=EB=A5=BC =EC=9C=84=ED=95=B4=EC=84= =A0 "=EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80=EC=84=B1" =EC=84=9C=EB=B8=8C=EC= =84=B9=EC=85=98=EC=9D=84 =EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - -=EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1 -------------- - -=ED=98=84=EC=9E=AC=EC=9D=98 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=93=A4= =EC=9D=80 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=84 = =EC=9D=B4=ED=95=B4=ED=95=98=EA=B3=A0 =EC=9E=88=EC=A7=80 =EC=95=8A=EA=B8=B0 = =EB=95=8C=EB=AC=B8=EC=97=90 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4= =EC=84=B1=EC=9D=80 -=EC=95=BD=EA=B0=84 =EB=8B=A4=EB=A3=A8=EA=B8=B0 =EC=96=B4=EB=A0=A4=EC=9A=B8= =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EC=84=B9=EC=85= =98=EC=9D=98 =EB=AA=A9=EC=A0=81=EC=9D=80 =EC=97=AC=EB=9F=AC=EB=B6=84=EC=9D= =B4 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=9D=98 =EB=AC=B4=EC=8B=9C=EB=A1= =9C -=EC=9D=B8=ED=95=B4 =EC=97=AC=EB=9F=AC=EB=B6=84=EC=9D=98 =EC=BD=94=EB=93=9C= =EA=B0=80 =EB=A7=9D=EA=B0=80=EC=A7=80=EB=8A=94 =EA=B1=B8 =EB=A7=89=EC=9D=84= =EC=88=98 =EC=9E=88=EB=8F=84=EB=A1=9D =EB=8F=95=EB=8A=94=EA=B2=81=EB=8B=88= =EB=8B=A4. - -=EB=A1=9C=EB=93=9C-=EB=A1=9C=EB=93=9C =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D= =98=EC=A1=B4=EC=84=B1=EC=9D=80 (=EB=AC=B5=EC=8B=9C=EC=A0=81=EC=9D=B8) =EC= =A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB= =A7=8C=EC=9C=BC=EB=A1=9C=EB=8A=94 =EC=A0=95=ED=99=95=ED=9E=88 =EB=8F=99=EC= =9E=91=ED=95=A0 -=EC=88=98=EA=B0=80 =EC=97=86=EC=96=B4=EC=84=9C =EC=9D=BD=EA=B8=B0 =EB=A9= =94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =ED=95=84=EC=9A= =94=EB=A1=9C =ED=95=A9=EB=8B=88=EB=8B=A4. =EC=95=84=EB=9E=98=EC=9D=98 =EC= =BD=94=EB=93=9C=EB=A5=BC =EB=B4=85=EC=8B=9C=EB=8B=A4: - - q =3D READ_ONCE(a); - <=EB=AC=B5=EC=8B=9C=EC=A0=81 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84= =B1 =EB=B0=B0=EB=A6=AC=EC=96=B4> - if (q) { - /* BUG: No address dependency!!! */ - p =3D READ_ONCE(b); - } - -=EC=9D=B4 =EC=BD=94=EB=93=9C=EB=8A=94 =EC=9B=90=ED=95=98=EB=8A=94 =EB=8C= =80=EB=A1=9C=EC=9D=98 =ED=9A=A8=EA=B3=BC=EB=A5=BC =EB=82=B4=EC=A7=80 =EB=AA= =BB=ED=95=A0 =EC=88=98 =EC=9E=88=EB=8A=94=EB=8D=B0, =EC=9D=B4 =EC=BD=94=EB= =93=9C=EC=97=90=EB=8A=94 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1=EC= =9D=B4 -=EC=95=84=EB=8B=88=EB=9D=BC =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4= =EC=84=B1=EC=9D=B4 =EC=A1=B4=EC=9E=AC=ED=95=98=EA=B8=B0 =EB=95=8C=EB=AC=B8= =EC=9C=BC=EB=A1=9C, =EC=9D=B4=EB=9F=B0 =EC=83=81=ED=99=A9=EC=97=90=EC=84=9C= CPU =EB=8A=94 =EC=8B=A4=ED=96=89 =EC=86=8D=EB=8F=84=EB=A5=BC =EB=8D=94 -=EB=B9=A0=EB=A5=B4=EA=B2=8C =ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4 =EB=B6= =84=EA=B8=B0 =EC=A1=B0=EA=B1=B4=EC=9D=98 =EA=B2=B0=EA=B3=BC=EB=A5=BC =EC=98= =88=EC=B8=A1=ED=95=98=EA=B3=A0 =EC=BD=94=EB=93=9C=EB=A5=BC =EC=9E=AC=EB=B0= =B0=EC=B9=98 =ED=95=A0 =EC=88=98 =EC=9E=88=EC=96=B4=EC=84=9C =EB=8B=A4=EB= =A5=B8 -CPU =EB=8A=94 b =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C = =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 a =EB=A1=9C=EB=B6=80= =ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4= =EC=85=98=EB=B3=B4=EB=8B=A4 =EB=A8=BC=EC=A0=80 =EB=B0=9C=EC=83=9D=ED=95=9C -=EA=B1=B8=EB=A1=9C =EC=9D=B8=EC=8B=9D=ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A= =B5=EB=8B=88=EB=8B=A4. =EC=97=AC=EA=B8=B0=EC=97=90 =EC=A0=95=EB=A7=90=EB= =A1=9C =ED=95=84=EC=9A=94=ED=96=88=EB=8D=98 =EA=B1=B4 =EB=8B=A4=EC=9D=8C=EA= =B3=BC =EA=B0=99=EC=8A=B5=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - if (q) { - <=EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - p =3D READ_ONCE(b); - } - -=ED=95=98=EC=A7=80=EB=A7=8C, =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4=ED=8D= =BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=80 =EC=98=88=EC=B8=A1=EC=A0=81=EC=9C= =BC=EB=A1=9C =EC=88=98=ED=96=89=EB=90=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B= =88=EB=8B=A4. =EC=A6=89, =EB=8B=A4=EC=9D=8C =EC=98=88=EC=97=90=EC=84=9C=EC= =99=80 -=EA=B0=99=EC=9D=B4 =EB=A1=9C=EB=93=9C-=EC=8A=A4=ED=86=A0=EC=96=B4 =EC=BB= =A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=B4 =EC=A1=B4=EC=9E= =AC=ED=95=98=EB=8A=94 =EA=B2=BD=EC=9A=B0=EC=97=90=EB=8A=94 =EC=88=9C=EC=84= =9C=EA=B0=80 -=EC=A7=80=EC=BC=9C=EC=A7=84=EB=8B=A4-=EB=8A=94 -=EC=9D=98=EB=AF=B8=EC=9E=85=EB=8B=88=EB=8B=A4. - - q =3D READ_ONCE(a); - if (q) { - WRITE_ONCE(b, 1); - } - -=EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EB=B3=B4= =ED=86=B5 =EB=8B=A4=EB=A5=B8 =ED=83=80=EC=9E=85=EC=9D=98 =EB=B0=B0=EB=A6=AC= =EC=96=B4=EB=93=A4=EA=B3=BC =EC=A7=9D=EC=9D=84 =EB=A7=9E=EC=B6=B0 =EC=82=AC= =EC=9A=A9=EB=90=A9=EB=8B=88=EB=8B=A4. =EA=B7=B8=EB=A0=87=EB=8B=A4=EA=B3=A4 -=ED=95=98=EB=82=98, READ_ONCE() =EB=8F=84 WRITE_ONCE() =EB=8F=84 =EC=84=A0= =ED=83=9D=EC=82=AC=ED=95=AD=EC=9D=B4 =EC=95=84=EB=8B=88=EB=9D=BC =ED=95=84= =EC=88=98=EC=82=AC=ED=95=AD=EC=9E=84=EC=9D=84 =EB=B6=80=EB=94=94 -=EB=AA=85=EC=8B=AC=ED=95=98=EC=84=B8=EC=9A=94! READ_ONCE() =EA=B0=80 =EC= =97=86=EB=8B=A4=EB=A9=B4, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 'a'= =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C=EB=A5=BC 'a' =EB= =A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 -=EB=98=90=EB=8B=A4=EB=A5=B8 =EB=A1=9C=EB=93=9C=EC=99=80 =EC=A1=B0=ED=95=A9= =ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. WRITE_ONCE() =EA= =B0=80 =EC=97=86=EB=8B=A4=EB=A9=B4, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB= =8A=94 'b' =EB=A1=9C=EC=9D=98 -=EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC 'b' =EB=A1=9C=EC=9D=98 =EB=98=90=EB= =9D=BC=EB=8A=90 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=93=A4=EA=B3=BC =EC=A1=B0=ED= =95=A9=ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=91=90 = =EA=B2=BD=EC=9A=B0 =EB=AA=A8=EB=91=90 =EC=88=9C=EC=84=9C=EC=97=90 -=EC=9E=88=EC=96=B4 =EC=83=81=EB=8B=B9=ED=9E=88 =EB=B9=84=EC=A7=81=EA=B4=80= =EC=A0=81=EC=9D=B8 =EA=B2=B0=EA=B3=BC=EB=A5=BC =EC=B4=88=EB=9E=98=ED=95=A0 = =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EC=9D=B4=EA=B1=B8=EB=A1=9C =EB=81=9D=EC=9D=B4 =EC=95=84=EB=8B=8C=EA=B2=8C= , =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 =EB=B3=80=EC=88=98 'a' =EC= =9D=98 =EA=B0=92=EC=9D=B4 =ED=95=AD=EC=83=81 0=EC=9D=B4 =EC=95=84=EB=8B=88= =EB=9D=BC=EA=B3=A0 =EC=A6=9D=EB=AA=85=ED=95=A0 =EC=88=98 -=EC=9E=88=EB=8B=A4=EB=A9=B4, =EC=95=9E=EC=9D=98 =EC=98=88=EC=97=90=EC=84= =9C "if" =EB=AC=B8=EC=9D=84 =EC=97=86=EC=95=A0=EC=84=9C =EB=8B=A4=EC=9D=8C= =EA=B3=BC =EA=B0=99=EC=9D=B4 =EC=B5=9C=EC=A0=81=ED=99=94 =ED=95=A0 =EC=88= =98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - q =3D a; - b =3D 1; /* BUG: Compiler and CPU can both reorder!!! */ - -=EA=B7=B8=EB=9F=AC=EB=8B=88 READ_ONCE() =EB=A5=BC =EB=B0=98=EB=93=9C=EC=8B= =9C =EC=82=AC=EC=9A=A9=ED=95=98=EC=84=B8=EC=9A=94. - -=EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 "if" =EB=AC=B8=EC=9D=98 =EC= =96=91=EA=B0=88=EB=9E=98 =EB=B8=8C=EB=9E=9C=EC=B9=98=EC=97=90 =EB=AA=A8=EB= =91=90 =EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94 =EB=8F=99=EC=9D=BC=ED=95=9C =EC= =8A=A4=ED=86=A0=EC=96=B4=EC=97=90 =EB=8C=80=ED=95=B4 =EC=88=9C=EC=84=9C=EB= =A5=BC -=EA=B0=95=EC=A0=9C=ED=95=98=EA=B3=A0 =EC=8B=B6=EC=9D=80 =EA=B2=BD=EC=9A=B0= =EA=B0=80 =EC=9E=88=EC=9D=84 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - if (q) { - barrier(); - WRITE_ONCE(b, 1); - do_something(); - } else { - barrier(); - WRITE_ONCE(b, 1); - do_something_else(); - } - -=EC=95=88=ED=83=80=EA=B9=9D=EA=B2=8C=EB=8F=84, =ED=98=84=EC=9E=AC=EC=9D=98= =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=93=A4=EC=9D=80 =EB=86=92=EC=9D=80 = =EC=B5=9C=EC=A0=81=ED=99=94 =EB=A0=88=EB=B2=A8=EC=97=90=EC=84=9C=EB=8A=94 = =EC=9D=B4=EA=B1=B8 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 -=EB=B0=94=EA=BF=94=EB=B2=84=EB=A6=BD=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - barrier(); - WRITE_ONCE(b, 1); /* BUG: No ordering vs. load from a!!! */ - if (q) { - /* WRITE_ONCE(b, 1); -- moved up, BUG!!! */ - do_something(); - } else { - /* WRITE_ONCE(b, 1); -- moved up, BUG!!! */ - do_something_else(); - } - -=EC=9D=B4=EC=A0=9C 'a' =EC=97=90=EC=84=9C=EC=9D=98 =EB=A1=9C=EB=93=9C=EC= =99=80 'b' =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=82=AC=EC=9D= =B4=EC=97=90=EB=8A=94 =EC=A1=B0=EA=B1=B4=EC=A0=81 =EA=B4=80=EA=B3=84=EA=B0= =80 =EC=97=86=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 CPU -=EB=8A=94 =EC=9D=B4=EB=93=A4=EC=9D=98 =EC=88=9C=EC=84=9C=EB=A5=BC =EB=B0= =94=EA=BF=80 =EC=88=98 =EC=9E=88=EA=B2=8C =EB=90=A9=EB=8B=88=EB=8B=A4: =EC= =9D=B4=EB=9F=B0 =EA=B2=BD=EC=9A=B0=EC=97=90 =EC=A1=B0=EA=B1=B4=EC=A0=81 =EA= =B4=80=EA=B3=84=EB=8A=94 =EB=B0=98=EB=93=9C=EC=8B=9C -=ED=95=84=EC=9A=94=ED=95=9C=EB=8D=B0, =EB=AA=A8=EB=93=A0 =EC=BB=B4=ED=8C= =8C=EC=9D=BC=EB=9F=AC =EC=B5=9C=EC=A0=81=ED=99=94=EA=B0=80 =EC=9D=B4=EB=A3= =A8=EC=96=B4=EC=A7=80=EA=B3=A0 =EB=82=9C =ED=9B=84=EC=9D=98 =EC=96=B4=EC=85= =88=EB=B8=94=EB=A6=AC =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB=8F=84 -=EB=A7=88=EC=B0=AC=EA=B0=80=EC=A7=80=EC=9E=85=EB=8B=88=EB=8B=A4. =EB=94= =B0=EB=9D=BC=EC=84=9C, =EC=9D=B4 =EC=98=88=EC=97=90=EC=84=9C =EC=88=9C=EC= =84=9C=EB=A5=BC =EC=A7=80=ED=82=A4=EA=B8=B0 =EC=9C=84=ED=95=B4=EC=84=9C=EB= =8A=94 smp_store_release() -=EC=99=80 =EA=B0=99=EC=9D=80 =EB=AA=85=EC=8B=9C=EC=A0=81 =EB=A9=94=EB=AA= =A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =ED=95=84=EC=9A=94=ED=95= =A9=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - if (q) { - smp_store_release(&b, 1); - do_something(); - } else { - smp_store_release(&b, 1); - do_something_else(); - } - -=EB=B0=98=EB=A9=B4=EC=97=90 =EB=AA=85=EC=8B=9C=EC=A0=81 =EB=A9=94=EB=AA=A8= =EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =EC=97=86=EB=8B=A4=EB=A9=B4,= =EC=9D=B4=EB=9F=B0 =EA=B2=BD=EC=9A=B0=EC=9D=98 =EC=88=9C=EC=84=9C=EB=8A=94= =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EB=93=A4=EC=9D=B4 -=EC=84=9C=EB=A1=9C =EB=8B=A4=EB=A5=BC =EB=95=8C=EC=97=90=EB=A7=8C =EB=B3= =B4=EC=9E=A5=EB=90=98=EB=8A=94=EB=8D=B0, =EC=98=88=EB=A5=BC =EB=93=A4=EB=A9= =B4 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EA=B2=BD=EC=9A=B0=EC=9E= =85=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - if (q) { - WRITE_ONCE(b, 1); - do_something(); - } else { - WRITE_ONCE(b, 2); - do_something_else(); - } - -=EC=B2=98=EC=9D=8C=EC=9D=98 READ_ONCE() =EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D= =BC=EB=9F=AC=EA=B0=80 'a' =EC=9D=98 =EA=B0=92=EC=9D=84 =EC=A6=9D=EB=AA=85= =ED=95=B4=EB=82=B4=EB=8A=94 =EA=B2=83=EC=9D=84 =EB=A7=89=EA=B8=B0 =EC=9C=84= =ED=95=B4 =EC=97=AC=EC=A0=84=ED=9E=88 -=ED=95=84=EC=9A=94=ED=95=A9=EB=8B=88=EB=8B=A4. - -=EB=98=90=ED=95=9C, =EB=A1=9C=EC=BB=AC =EB=B3=80=EC=88=98 'q' =EB=A5=BC = =EA=B0=80=EC=A7=80=EA=B3=A0 =ED=95=98=EB=8A=94 =EC=9D=BC=EC=97=90 =EB=8C=80= =ED=95=B4 =EC=A3=BC=EC=9D=98=ED=95=B4=EC=95=BC =ED=95=98=EB=8A=94=EB=8D=B0,= =EA=B7=B8=EB=9F=AC=EC=A7=80 =EC=95=8A=EC=9C=BC=EB=A9=B4 -=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EA=B7=B8 =EA=B0=92=EC=9D=84= =EC=B6=94=EC=B8=A1=ED=95=98=EA=B3=A0 =EB=98=90=EB=8B=A4=EC=8B=9C =ED=95=84= =EC=9A=94=ED=95=9C =EC=A1=B0=EA=B1=B4=EA=B4=80=EA=B3=84=EB=A5=BC =EC=97=86= =EC=95=A0=EB=B2=84=EB=A6=B4 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. -=EC=98=88=EB=A5=BC =EB=93=A4=EB=A9=B4: - - q =3D READ_ONCE(a); - if (q % MAX) { - WRITE_ONCE(b, 1); - do_something(); - } else { - WRITE_ONCE(b, 2); - do_something_else(); - } - -=EB=A7=8C=EC=95=BD MAX =EA=B0=80 1 =EB=A1=9C =EC=A0=95=EC=9D=98=EB=90=9C = =EC=83=81=EC=88=98=EB=9D=BC=EB=A9=B4, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC= =EB=8A=94 (q % MAX) =EB=8A=94 0=EC=9D=B4=EB=9E=80 =EA=B2=83=EC=9D=84 =EC=95= =8C=EC=95=84=EC=B1=84=EA=B3=A0, -=EC=9C=84=EC=9D=98 =EC=BD=94=EB=93=9C=EB=A5=BC =EC=95=84=EB=9E=98=EC=99=80= =EA=B0=99=EC=9D=B4 =EB=B0=94=EA=BF=94=EB=B2=84=EB=A6=B4 =EC=88=98 =EC=9E= =88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - WRITE_ONCE(b, 2); - do_something_else(); - -=EC=9D=B4=EB=A0=87=EA=B2=8C =EB=90=98=EB=A9=B4, CPU =EB=8A=94 =EB=B3=80=EC= =88=98 'a' =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C=EC=99=80= =EB=B3=80=EC=88=98 'b' =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC= =82=AC=EC=9D=B4=EC=9D=98 =EC=88=9C=EC=84=9C=EB=A5=BC -=EC=A7=80=EC=BC=9C=EC=A4=84 =ED=95=84=EC=9A=94=EA=B0=80 =EC=97=86=EC=96=B4= =EC=A7=91=EB=8B=88=EB=8B=A4. barrier() =EB=A5=BC =EC=B6=94=EA=B0=80=ED=95= =B4 =ED=95=B4=EA=B2=B0=ED=95=B4 =EB=B3=B4=EA=B3=A0 =EC=8B=B6=EA=B2=A0=EC=A7= =80=EB=A7=8C, =EA=B7=B8=EA=B1=B4 -=EB=8F=84=EC=9B=80=EC=9D=B4 =EC=95=88=EB=90=A9=EB=8B=88=EB=8B=A4. =EC=A1= =B0=EA=B1=B4 =EA=B4=80=EA=B3=84=EB=8A=94 =EC=82=AC=EB=9D=BC=EC=A1=8C=EA=B3= =A0, barrier() =EB=8A=94 =EC=9D=B4=EB=A5=BC =EB=90=98=EB=8F=8C=EB=A6=AC=EC= =A7=80 =EB=AA=BB=ED=95=A9=EB=8B=88=EB=8B=A4. -=EB=94=B0=EB=9D=BC=EC=84=9C, =EC=9D=B4 =EC=88=9C=EC=84=9C=EB=A5=BC =EC=A7= =80=EC=BC=9C=EC=95=BC =ED=95=9C=EB=8B=A4=EB=A9=B4, MAX =EA=B0=80 1 =EB=B3= =B4=EB=8B=A4 =ED=81=AC=EB=8B=A4=EB=8A=94 =EA=B2=83=EC=9D=84, =EB=8B=A4=EC= =9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EB=B0=A9=EB=B2=95=EC=9D=84 -=EC=82=AC=EC=9A=A9=ED=95=B4 =EB=B6=84=EB=AA=85=ED=9E=88 =ED=95=B4=EC=95=BC= =ED=95=A9=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - BUILD_BUG_ON(MAX <=3D 1); /* Order load from a with store to b. */ - if (q % MAX) { - WRITE_ONCE(b, 1); - do_something(); - } else { - WRITE_ONCE(b, 2); - do_something_else(); - } - -'b' =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=93=A4=EC=9D=80 =EC= =97=AC=EC=A0=84=ED=9E=88 =EC=84=9C=EB=A1=9C =EB=8B=A4=EB=A6=84=EC=9D=84 =EC= =95=8C=EC=95=84=EB=91=90=EC=84=B8=EC=9A=94. =EB=A7=8C=EC=95=BD =EA=B7=B8= =EA=B2=83=EB=93=A4=EC=9D=B4 =EB=8F=99=EC=9D=BC=ED=95=98=EB=A9=B4, -=EC=95=9E=EC=97=90=EC=84=9C =EC=9D=B4=EC=95=BC=EA=B8=B0=ED=96=88=EB=93=AF,= =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 =EA=B7=B8 =EC=8A=A4=ED=86=A0= =EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84 '= if' =EB=AC=B8 =EB=B0=94=EA=B9=A5=EC=9C=BC=EB=A1=9C -=EB=81=84=EC=A7=91=EC=96=B4=EB=82=BC =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88= =EB=8B=A4. - -=EB=98=90=ED=95=9C =EC=9D=B4=EC=A7=84 =EC=A1=B0=EA=B1=B4=EB=AC=B8 =ED=8F= =89=EA=B0=80=EC=97=90 =EB=84=88=EB=AC=B4 =EC=9D=98=EC=A1=B4=ED=95=98=EC=A7= =80 =EC=95=8A=EB=8F=84=EB=A1=9D =EC=A1=B0=EC=8B=AC=ED=95=B4=EC=95=BC =ED=95= =A9=EB=8B=88=EB=8B=A4. =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=98=88=EB=A5=BC -=EB=B4=85=EC=8B=9C=EB=8B=A4: - - q =3D READ_ONCE(a); - if (q || 1 > 0) - WRITE_ONCE(b, 1); - -=EC=B2=AB=EB=B2=88=EC=A7=B8 =EC=A1=B0=EA=B1=B4=EB=A7=8C=EC=9C=BC=EB=A1=9C= =EB=8A=94 =EB=B8=8C=EB=9E=9C=EC=B9=98 =EC=A1=B0=EA=B1=B4 =EC=A0=84=EC=B2=B4= =EB=A5=BC =EA=B1=B0=EC=A7=93=EC=9C=BC=EB=A1=9C =EB=A7=8C=EB=93=A4 =EC=88=98= =EC=97=86=EA=B3=A0 =EB=91=90=EB=B2=88=EC=A7=B8 =EC=A1=B0=EA=B1=B4=EC=9D=80= =ED=95=AD=EC=83=81 -=EC=B0=B8=EC=9D=B4=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90, =EC=BB=B4=ED=8C= =8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EC=9D=B4 =EC=98=88=EB=A5=BC =EB=8B=A4=EC=9D= =8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =EB=B0=94=EA=BF=94=EC=84=9C =EC=BB=A8=ED=8A= =B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=84 =EC=97=86=EC=95=A0=EB=B2= =84=EB=A6=B4 -=EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - WRITE_ONCE(b, 1); - -=EC=9D=B4 =EC=98=88=EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80= =EC=BD=94=EB=93=9C=EB=A5=BC =EC=B6=94=EC=B8=A1=EC=9C=BC=EB=A1=9C =EC=88=98= =EC=A0=95=ED=95=A0 =EC=88=98 =EC=97=86=EB=8F=84=EB=A1=9D =EB=B6=84=EB=AA=85= =ED=9E=88 =ED=95=B4=EC=95=BC =ED=95=9C=EB=8B=A4=EB=8A=94 =EC=A0=90=EC=9D=84 -=EA=B0=95=EC=A1=B0=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=A1=B0=EA=B8=88 =EB=8D= =94 =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C =EB=A7=90=ED=95=B4=EC=84= =9C, READ_ONCE() =EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=97=90=EA= =B2=8C =EC=A3=BC=EC=96=B4=EC=A7=84 =EB=A1=9C=EB=93=9C -=EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EC=9C=84=ED=95=9C = =EC=BD=94=EB=93=9C=EB=A5=BC =EC=A0=95=EB=A7=90=EB=A1=9C =EB=A7=8C=EB=93=A4= =EB=8F=84=EB=A1=9D =ED=95=98=EC=A7=80=EB=A7=8C, =EC=BB=B4=ED=8C=8C=EC=9D=BC= =EB=9F=AC=EA=B0=80 =EA=B7=B8=EB=A0=87=EA=B2=8C =EB=A7=8C=EB=93=A4=EC=96=B4= =EC=A7=84 -=EC=BD=94=EB=93=9C=EC=9D=98 =EC=88=98=ED=96=89 =EA=B2=B0=EA=B3=BC=EB=A5=BC= =EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D =EA=B0=95=EC=A0=9C=ED=95=98= =EC=A7=80=EB=8A=94 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EB=98=90=ED=95=9C, =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84= =B1=EC=9D=80 if =EB=AC=B8=EC=9D=98 then =EC=A0=88=EA=B3=BC else =EC=A0=88= =EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB=A7=8C =EC=A0=81=EC=9A=A9=EB=90=A9= =EB=8B=88=EB=8B=A4. =EC=83=81=EC=84=B8=ED=9E=88 -=EB=A7=90=ED=95=B4=EC=84=9C, =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1= =B4=EC=84=B1=EC=9D=80 if =EB=AC=B8=EC=9D=84 =EB=92=A4=EB=94=B0=EB=A5=B4=EB= =8A=94 =EC=BD=94=EB=93=9C=EC=97=90=EB=8A=94 =EC=A0=81=EC=9A=A9=EB=90=98=EC= =A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4: - - q =3D READ_ONCE(a); - if (q) { - WRITE_ONCE(b, 1); - } else { - WRITE_ONCE(b, 2); - } - WRITE_ONCE(c, 1); /* BUG: No ordering against the read from 'a'. */ - -=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 volatile =ED=83=80=EC=9E=85= =EC=97=90 =EB=8C=80=ED=95=9C =EC=95=A1=EC=84=B8=EC=8A=A4=EB=A5=BC =EC=9E=AC= =EB=B0=B0=EC=B9=98 =ED=95=A0 =EC=88=98 =EC=97=86=EA=B3=A0 =EC=9D=B4 =EC=A1= =B0=EA=B1=B4 =ED=95=98=EC=9D=98 'b' -=EB=A1=9C=EC=9D=98 =EC=93=B0=EA=B8=B0=EB=A5=BC =EC=9E=AC=EB=B0=B0=EC=B9=98= =ED=95=A0 =EC=88=98 =EC=97=86=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 =EC=97= =AC=EA=B8=B0=EC=97=90 =EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=B4 =EC=A1= =B4=EC=9E=AC=ED=95=9C=EB=8B=A4=EA=B3=A0 =EC=A3=BC=EC=9E=A5=ED=95=98=EA=B3= =A0 -=EC=8B=B6=EC=9D=84 =EA=B2=81=EB=8B=88=EB=8B=A4. =EB=B6=88=ED=96=89=ED=9E= =88=EB=8F=84 =EC=9D=B4 =EA=B2=BD=EC=9A=B0=EC=97=90, =EC=BB=B4=ED=8C=8C=EC= =9D=BC=EB=9F=AC=EB=8A=94 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EA=B0=80=EC=83=81=EC= =9D=98 pseudo-assembly =EC=96=B8=EC=96=B4 -=EC=BD=94=EB=93=9C=EC=B2=98=EB=9F=BC 'b' =EB=A1=9C=EC=9D=98 =EB=91=90=EA= =B0=9C=EC=9D=98 =EC=93=B0=EA=B8=B0 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC= =85=98=EC=9D=84 conditional-move =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85= =98=EC=9C=BC=EB=A1=9C -=EB=B2=88=EC=97=AD=ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - ld r1,a - cmp r1,$0 - cmov,ne r4,$1 - cmov,eq r4,$2 - st r4,b - st $1,c - -=EC=99=84=ED=99=94=EB=90=9C =EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=98= CPU =EB=8A=94 'a' =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C= =EC=99=80 'c' =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=82=AC=EC= =9D=B4=EC=97=90 =EC=96=B4=EB=96=A4 -=EC=A2=85=EB=A5=98=EC=9D=98 =EC=9D=98=EC=A1=B4=EC=84=B1=EB=8F=84 =EA=B0=96= =EC=A7=80 =EC=95=8A=EC=9D=84 =EA=B2=81=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EC=BB= =A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EB=91=90=EA=B0= =9C=EC=9D=98 cmov =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EA=B3=BC -=EA=B1=B0=EA=B8=B0=EC=97=90 =EC=9D=98=EC=A1=B4=ED=95=98=EB=8A=94 =EC=8A=A4= =ED=86=A0=EC=96=B4 =EC=97=90=EA=B2=8C=EB=A7=8C =EC=A0=81=EC=9A=A9=EB=90=A0 = =EA=B2=81=EB=8B=88=EB=8B=A4. =EC=A7=A7=EA=B2=8C =EB=A7=90=ED=95=98=EC=9E= =90=EB=A9=B4, =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D= =80 -=EC=A3=BC=EC=96=B4=EC=A7=84 if =EB=AC=B8=EC=9D=98 then =EC=A0=88=EA=B3=BC = else =EC=A0=88=EC=97=90=EA=B2=8C=EB=A7=8C (=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EC= =9D=B4 =EB=91=90 =EC=A0=88 =EB=82=B4=EC=97=90=EC=84=9C =ED=98=B8=EC=B6=9C= =EB=90=98=EB=8A=94 -=ED=95=A8=EC=88=98=EB=93=A4=EC=97=90=EA=B2=8C=EA=B9=8C=EC=A7=80) =EC=A0=81= =EC=9A=A9=EB=90=98=EC=A7=80, =EC=9D=B4 if =EB=AC=B8=EC=9D=84 =EB=92=A4=EB= =94=B0=EB=A5=B4=EB=8A=94 =EC=BD=94=EB=93=9C=EC=97=90=EB=8A=94 =EC=A0=81=EC= =9A=A9=EB=90=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=97=90 =EC=9D=98= =ED=95=B4 =EC=A0=9C=EA=B3=B5=EB=90=98=EB=8A=94 =EC=9D=B4 =EC=88=9C=EC=84=9C= =EA=B7=9C=EC=B9=99=EC=9D=80 =EC=9D=B4=EB=A5=BC =ED=8F=AC=ED=95=A8=ED=95=98= =EA=B3=A0 =EC=9E=88=EB=8A=94 CPU =EC=97=90 -=EC=A7=80=EC=97=AD=EC=A0=81=EC=9E=85=EB=8B=88=EB=8B=A4. =EB=8D=94 =EB=A7= =8E=EC=9D=80 =EC=A0=95=EB=B3=B4=EB=A5=BC =EC=9C=84=ED=95=B4=EC=84=A0 "Multi= copy =EC=9B=90=EC=9E=90=EC=84=B1" =EC=84=B9=EC=85=98=EC=9D=84 =EC=B0=B8=EA= =B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - -=EC=9A=94=EC=95=BD=ED=95=98=EC=9E=90=EB=A9=B4: - - (*) =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EC= =95=9E=EC=9D=98 =EB=A1=9C=EB=93=9C=EB=93=A4=EC=9D=84 =EB=92=A4=EC=9D=98 =EC= =8A=A4=ED=86=A0=EC=96=B4=EB=93=A4=EC=97=90 =EB=8C=80=ED=95=B4 =EC=88=9C=EC= =84=9C=EB=A5=BC =EB=A7=9E=EC=B6=B0=EC=A4=8D=EB=8B=88=EB=8B=A4. - =ED=95=98=EC=A7=80=EB=A7=8C, =EA=B7=B8 =EC=99=B8=EC=9D=98 =EC=96=B4= =EB=96=A4 =EC=88=9C=EC=84=9C=EB=8F=84 =EB=B3=B4=EC=9E=A5=ED=95=98=EC=A7=80 = -=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4-: =EC=95=9E=EC=9D=98 =EB=A1=9C=EB=93= =9C=EC=99=80 =EB=92=A4=EC=9D=98 =EB=A1=9C=EB=93=9C=EB=93=A4 - =EC=82=AC=EC=9D=B4=EC=97=90=EB=8F=84, =EC=95=9E=EC=9D=98 =EC=8A=A4= =ED=86=A0=EC=96=B4=EC=99=80 =EB=92=A4=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4= =EB=93=A4 =EC=82=AC=EC=9D=B4=EC=97=90=EB=8F=84=EC=9A=94. =EC=9D=B4=EB=9F= =B0 =EB=8B=A4=EB=A5=B8 =ED=98=95=ED=83=9C=EC=9D=98 - =EC=88=9C=EC=84=9C=EA=B0=80 =ED=95=84=EC=9A=94=ED=95=98=EB=8B=A4=EB= =A9=B4 smp_rmb() =EB=82=98 smp_wmb()=EB=A5=BC, =EB=98=90=EB=8A=94, =EC=95= =9E=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=93=A4=EA=B3=BC =EB=92=A4=EC=9D= =98 - =EB=A1=9C=EB=93=9C=EB=93=A4 =EC=82=AC=EC=9D=B4=EC=9D=98 =EC=88=9C=EC= =84=9C=EB=A5=BC =EC=9C=84=ED=95=B4=EC=84=9C=EB=8A=94 smp_mb() =EB=A5=BC =EC= =82=AC=EC=9A=A9=ED=95=98=EC=84=B8=EC=9A=94. - - (*) "if" =EB=AC=B8=EC=9D=98 =EC=96=91=EA=B0=88=EB=9E=98 =EB=B8=8C=EB=9E= =9C=EC=B9=98=EA=B0=80 =EA=B0=99=EC=9D=80 =EB=B3=80=EC=88=98=EC=97=90=EC=9D= =98 =EB=8F=99=EC=9D=BC=ED=95=9C =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A1=9C =EC=8B= =9C=EC=9E=91=ED=95=9C=EB=8B=A4=EB=A9=B4, =EA=B7=B8 - =EC=8A=A4=ED=86=A0=EC=96=B4=EB=93=A4=EC=9D=80 =EA=B0=81 =EC=8A=A4=ED= =86=A0=EC=96=B4 =EC=95=9E=EC=97=90 smp_mb() =EB=A5=BC =EB=84=A3=EA=B1=B0=EB= =82=98 smp_store_release() =EB=A5=BC - =EC=82=AC=EC=9A=A9=ED=95=B4=EC=84=9C =EC=8A=A4=ED=86=A0=EC=96=B4=EB= =A5=BC =ED=95=98=EB=8A=94 =EC=8B=9D=EC=9C=BC=EB=A1=9C =EC=88=9C=EC=84=9C=EB= =A5=BC =EB=A7=9E=EC=B6=B0=EC=A4=98=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4. = =EC=9D=B4 =EB=AC=B8=EC=A0=9C=EB=A5=BC =ED=95=B4=EA=B2=B0=ED=95=98=EA=B8=B0 - =EC=9C=84=ED=95=B4 "if" =EB=AC=B8=EC=9D=98 =EC=96=91=EA=B0=88=EB=9E= =98 =EB=B8=8C=EB=9E=9C=EC=B9=98=EC=9D=98 =EC=8B=9C=EC=9E=91 =EC=A7=80=EC=A0= =90=EC=97=90 barrier() =EB=A5=BC =EB=84=A3=EB=8A=94 =EA=B2=83=EB=A7=8C=EC= =9C=BC=EB=A1=9C=EB=8A=94 - =EC=B6=A9=EB=B6=84=ED=95=9C =ED=95=B4=EA=B2=B0=EC=9D=B4 =EB=90=98=EC= =A7=80 =EC=95=8A=EB=8A=94=EB=8D=B0, =EC=9D=B4=EB=8A=94 =EC=95=9E=EC=9D=98 = =EC=98=88=EC=97=90=EC=84=9C =EB=B3=B8=EA=B2=83=EA=B3=BC =EA=B0=99=EC=9D=B4,= =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=9D=98 - =EC=B5=9C=EC=A0=81=ED=99=94=EB=8A=94 barrier() =EA=B0=80 =EC=9D=98= =EB=AF=B8=ED=95=98=EB=8A=94 =EB=B0=94=EB=A5=BC =EC=A7=80=ED=82=A4=EB=A9=B4= =EC=84=9C=EB=8F=84 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1= =EC=9D=84 =EC=86=90=EC=83=81=EC=8B=9C=ED=82=AC - =EC=88=98 =EC=9E=88=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=9D=B4=EB=9D=BC=EB= =8A=94 =EC=A0=90=EC=9D=84 =EB=B6=80=EB=94=94 =EC=95=8C=EC=95=84=EB=91=90=EC= =8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. - - (*) =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EC= =95=9E=EC=9D=98 =EB=A1=9C=EB=93=9C=EC=99=80 =EB=92=A4=EC=9D=98 =EC=8A=A4=ED= =86=A0=EC=96=B4 =EC=82=AC=EC=9D=B4=EC=97=90 =EC=B5=9C=EC=86=8C =ED=95=98=EB= =82=98=EC=9D=98, =EC=8B=A4=ED=96=89 - =EC=8B=9C=EC=A0=90=EC=97=90=EC=84=9C=EC=9D=98 =EC=A1=B0=EA=B1=B4=EA= =B4=80=EA=B3=84=EB=A5=BC =ED=95=84=EC=9A=94=EB=A1=9C =ED=95=98=EB=A9=B0, = =EC=9D=B4 =EC=A1=B0=EA=B1=B4=EA=B4=80=EA=B3=84=EB=8A=94 =EC=95=9E=EC=9D=98 = =EB=A1=9C=EB=93=9C=EC=99=80 =EA=B4=80=EA=B3=84=EB=90=98=EC=96=B4=EC=95=BC - =ED=95=A9=EB=8B=88=EB=8B=A4. =EB=A7=8C=EC=95=BD =EC=BB=B4=ED=8C=8C= =EC=9D=BC=EB=9F=AC=EA=B0=80 =EC=A1=B0=EA=B1=B4 =EA=B4=80=EA=B3=84=EB=A5=BC = =EC=B5=9C=EC=A0=81=ED=99=94=EB=A1=9C =EC=97=86=EC=95=A8=EC=88=98 =EC=9E=88= =EB=8B=A4=EB=A9=B4, =EC=88=9C=EC=84=9C=EB=8F=84 - =EC=B5=9C=EC=A0=81=ED=99=94=EB=A1=9C =EC=97=86=EC=95=A0=EB=B2=84=EB= =A0=B8=EC=9D=84 =EA=B2=81=EB=8B=88=EB=8B=A4. READ_ONCE() =EC=99=80 WRITE_O= NCE() =EC=9D=98 =EC=A3=BC=EC=9D=98 =EA=B9=8A=EC=9D=80 - =EC=82=AC=EC=9A=A9=EC=9D=80 =EC=A3=BC=EC=96=B4=EC=A7=84 =EC=A1=B0=EA= =B1=B4 =EA=B4=80=EA=B3=84=EB=A5=BC =EC=9C=A0=EC=A7=80=ED=95=98=EB=8A=94=EB= =8D=B0 =EB=8F=84=EC=9B=80=EC=9D=B4 =EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5= =EB=8B=88=EB=8B=A4. - - (*) =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=84 =EC= =9C=84=ED=95=B4=EC=84=A0 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 =EC= =A1=B0=EA=B1=B4=EA=B4=80=EA=B3=84=EB=A5=BC =EC=97=86=EC=95=A0=EB=B2=84=EB= =A6=AC=EB=8A=94 =EA=B2=83=EC=9D=84 =EB=A7=89=EC=95=84=EC=95=BC - =ED=95=A9=EB=8B=88=EB=8B=A4. =EC=A3=BC=EC=9D=98 =EA=B9=8A=EC=9D=80 = READ_ONCE() =EB=82=98 atomic{,64}_read() =EC=9D=98 =EC=82=AC=EC=9A=A9=EC=9D= =B4 =EC=BB=A8=ED=8A=B8=EB=A1=A4 - =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=B4 =EC=82=AC=EB=9D=BC=EC=A7=80=EC= =A7=80 =EC=95=8A=EA=B2=8C =ED=95=98=EB=8A=94=EB=8D=B0 =EB=8F=84=EC=9B=80=EC= =9D=84 =EC=A4=84 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=8D=94= =EB=A7=8E=EC=9D=80 =EC=A0=95=EB=B3=B4=EB=A5=BC - =EC=9C=84=ED=95=B4=EC=84=A0 "=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC = =EB=B0=B0=EB=A6=AC=EC=96=B4" =EC=84=B9=EC=85=98=EC=9D=84 =EC=B0=B8=EA=B3=A0= =ED=95=98=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. - - (*) =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EC= =BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=84 =EA=B0=96=EB= =8A=94 if =EB=AC=B8=EC=9D=98 then =EC=A0=88=EA=B3=BC else =EC=A0=88=EA=B3= =BC =EC=9D=B4 =EB=91=90 =EC=A0=88 - =EB=82=B4=EC=97=90=EC=84=9C =ED=98=B8=EC=B6=9C=EB=90=98=EB=8A=94 =ED= =95=A8=EC=88=98=EB=93=A4=EC=97=90=EB=A7=8C =EC=A0=81=EC=9A=A9=EB=90=A9=EB= =8B=88=EB=8B=A4. =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1= =EC=9D=80 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=84 - =EA=B0=96=EB=8A=94 if =EB=AC=B8=EC=9D=84 =EB=92=A4=EB=94=B0=EB=A5=B4= =EB=8A=94 =EC=BD=94=EB=93=9C=EC=97=90=EB=8A=94 =EC=A0=81=EC=9A=A9=EB=90=98= =EC=A7=80 -=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4-. - - (*) =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EB= =B3=B4=ED=86=B5 =EB=8B=A4=EB=A5=B8 =ED=83=80=EC=9E=85=EC=9D=98 =EB=B0=B0=EB= =A6=AC=EC=96=B4=EB=93=A4=EA=B3=BC =EC=A7=9D=EC=9D=84 =EB=A7=9E=EC=B6=B0 =EC= =82=AC=EC=9A=A9=EB=90=A9=EB=8B=88=EB=8B=A4. - - (*) =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 mul= ticopy =EC=9B=90=EC=9E=90=EC=84=B1=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=98=EC= =A7=80 -=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4-. =EB=AA=A8=EB=93=A0 CPU =EB= =93=A4=EC=9D=B4 - =ED=8A=B9=EC=A0=95 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC =EB=8F=99=EC= =8B=9C=EC=97=90 =EB=B3=B4=EA=B8=B8 =EC=9B=90=ED=95=9C=EB=8B=A4=EB=A9=B4, sm= p_mb() =EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=98=EC=84=B8=EC=9A=94. - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EC=BB=A8=ED=8A=B8=EB= =A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=84 =EC=9D=B4=ED=95=B4=ED=95=98=EA= =B3=A0 =EC=9E=88=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=94=B0= =EB=9D=BC=EC=84=9C =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 - =EC=97=AC=EB=9F=AC=EB=B6=84=EC=9D=98 =EC=BD=94=EB=93=9C=EB=A5=BC =EB= =A7=9D=EA=B0=80=EB=9C=A8=EB=A6=AC=EC=A7=80 =EC=95=8A=EB=8F=84=EB=A1=9D =ED= =95=98=EB=8A=94=EA=B1=B4 =EC=97=AC=EB=9F=AC=EB=B6=84=EC=9D=B4 =ED=95=B4=EC= =95=BC =ED=95=98=EB=8A=94 =EC=9D=BC=EC=9E=85=EB=8B=88=EB=8B=A4. - - -SMP =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=A7=9D=EB=A7=9E=EC=B6=94=EA=B8=B0 --------------------- - -CPU =EA=B0=84 =EC=83=81=ED=98=B8=EC=9E=91=EC=9A=A9=EC=9D=84 =EB=8B=A4=EB= =A3=B0 =EB=95=8C=EC=97=90 =EC=9D=BC=EB=B6=80 =ED=83=80=EC=9E=85=EC=9D=98 = =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =ED=95=AD= =EC=83=81 =EC=A7=9D=EC=9D=84 =EB=A7=9E=EC=B6=B0 -=EC=82=AC=EC=9A=A9=EB=90=98=EC=96=B4=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4.= =EC=A0=81=EC=A0=88=ED=95=98=EA=B2=8C =EC=A7=9D=EC=9D=84 =EB=A7=9E=EC=B6= =94=EC=A7=80 =EC=95=8A=EC=9D=80 =EC=BD=94=EB=93=9C=EB=8A=94 =EC=82=AC=EC=8B= =A4=EC=83=81 =EC=97=90=EB=9F=AC=EC=97=90 =EA=B0=80=EA=B9=9D=EC=8A=B5=EB=8B= =88=EB=8B=A4. - -=EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=80 =EB=B2=94= =EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=81=BC=EB=A6=AC=EB=8F=84 =EC=A7=9D= =EC=9D=84 =EB=A7=9E=EC=B6=94=EC=A7=80=EB=A7=8C multicopy =EC=9B=90=EC=9E=90= =EC=84=B1=EC=9D=B4 =EC=97=86=EB=8A=94 -=EB=8C=80=EB=B6=80=EB=B6=84=EC=9D=98 =EB=8B=A4=EB=A5=B8 =ED=83=80=EC=9E=85= =EC=9D=98 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EA=B3=BC=EB=8F=84 =EC=A7=9D= =EC=9D=84 =EB=A7=9E=EC=B6=A5=EB=8B=88=EB=8B=A4. ACQUIRE =EB=B0=B0=EB=A6=AC= =EC=96=B4=EB=8A=94 RELEASE -=EB=B0=B0=EB=A6=AC=EC=96=B4=EC=99=80 =EC=A7=9D=EC=9D=84 =EB=A7=9E=EC=B6=A5= =EB=8B=88=EB=8B=A4=EB=A7=8C, =EB=91=98 =EB=8B=A4 =EB=B2=94=EC=9A=A9 =EB=B0= =B0=EB=A6=AC=EC=96=B4=EB=A5=BC =ED=8F=AC=ED=95=A8=ED=95=B4 =EB=8B=A4=EB=A5= =B8 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EA=B3=BC=EB=8F=84 =EC=A7=9D=EC=9D= =84 -=EB=A7=9E=EC=B6=9C =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=93= =B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=A3=BC=EC=86=8C =EC=9D= =98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=82=98 =EC=BB=A8=ED=8A= =B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1, ACQUIRE -=EB=B0=B0=EB=A6=AC=EC=96=B4, RELEASE =EB=B0=B0=EB=A6=AC=EC=96=B4, =EC=9D= =BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4, =EB=98=90=EB=8A=94 =EB=B2=94=EC= =9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=99=80 =EC=A7=9D=EC=9D=84 =EB=A7=9E=EC= =B6=A5=EB=8B=88=EB=8B=A4. -=EB=B9=84=EC=8A=B7=ED=95=98=EA=B2=8C =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC= =EC=96=B4=EB=82=98 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC=9D=98=EC=A1=B4=EC=84=B1,= =EB=98=90=EB=8A=94 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0= =B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96= =B4=EB=82=98 -ACQUIRE =EB=B0=B0=EB=A6=AC=EC=96=B4, RELEASE =EB=B0=B0=EB=A6=AC=EC=96=B4, = =EB=98=90=EB=8A=94 =EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=99=80 = =EC=A7=9D=EC=9D=84 =EB=A7=9E=EC=B6=94=EB=8A=94=EB=8D=B0, =EB=8B=A4=EC=9D=8C= =EA=B3=BC -=EA=B0=99=EC=8A=B5=EB=8B=88=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D - WRITE_ONCE(a, 1); - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - WRITE_ONCE(b, 2); x =3D READ_ONCE(b); - <=EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - y =3D READ_ONCE(a); - -=EB=98=90=EB=8A=94: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - a =3D 1; - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - WRITE_ONCE(b, &a); x =3D READ_ONCE(b); - <=EB=AC=B5=EC=8B=9C=EC=A0=81 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1= =B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4> - y =3D *x; - -=EB=98=90=EB=8A=94: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - r1 =3D READ_ONCE(y); - <=EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4> - WRITE_ONCE(x, 1); if (r2 =3D READ_ONCE(x)) { - <=EB=AC=B5=EC=8B=9C=EC=A0=81 =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EC= =9D=98=EC=A1=B4=EC=84=B1> - WRITE_ONCE(y, 1); - } - - assert(r1 =3D=3D 0 || r2 =3D=3D 0); - -=EA=B8=B0=EB=B3=B8=EC=A0=81=EC=9C=BC=EB=A1=9C, =EC=97=AC=EA=B8=B0=EC=84=9C= =EC=9D=98 =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 "=EB=8D= =94 =EC=99=84=ED=99=94=EB=90=9C" =ED=83=80=EC=9E=85=EC=9D=BC =EC=88=9C =EC= =9E=88=EC=96=B4=EB=8F=84 =ED=95=AD=EC=83=81 =EC=A1=B4=EC=9E=AC=ED=95=B4=EC= =95=BC -=ED=95=A9=EB=8B=88=EB=8B=A4. - -[!] =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=95=9E=EC=9D=98 =EC= =8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC= =9D=80 =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C =EC=9D=BD=EA=B8=B0 =EB= =B0=B0=EB=A6=AC=EC=96=B4=EB=82=98 =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC= =84=B1 -=EB=B0=B0=EB=A6=AC=EC=96=B4 =EB=92=A4=EC=9D=98 =EB=A1=9C=EB=93=9C =EC=98= =A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EA=B3=BC =EB=A7=A4=EC=B9=98=EB=90= =A0 =EA=B2=83=EC=9D=B4=EA=B3=A0, =EB=B0=98=EB=8C=80=EB=8F=84 =EB=A7=88=EC= =B0=AC=EA=B0=80=EC=A7=80=EC=9E=85=EB=8B=88=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - WRITE_ONCE(a, 1); }---- --->{ v =3D READ_ONCE(c); - WRITE_ONCE(b, 2); } \ / { w =3D READ_ONCE(d); - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> \ <= =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - WRITE_ONCE(c, 3); } / \ { x =3D READ_ONCE(a); - WRITE_ONCE(d, 4); }---- --->{ y =3D READ_ONCE(b); - - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=8B=9C=ED=80=80= =EC=8A=A4=EC=9D=98 =EC=98=88 -------------------------- - -=EC=B2=AB=EC=A7=B8, =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A= =94 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EB=93=A4=EC=9D=98 =EB=B6=80=EB=B6=84=EC=A0=81 =EC=88=9C=EC=84=9C =EC=84= =B8=EC=9A=B0=EA=B8=B0=EB=A1=9C =EB=8F=99=EC=9E=91=ED=95=A9=EB=8B=88=EB=8B= =A4. -=EC=95=84=EB=9E=98=EC=9D=98 =EC=9D=B4=EB=B2=A4=ED=8A=B8 =EC=8B=9C=ED=80=80= =EC=8A=A4=EB=A5=BC =EB=B3=B4=EC=84=B8=EC=9A=94: - - CPU 1 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - STORE A =3D 1 - STORE B =3D 2 - STORE C =3D 3 - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - STORE D =3D 4 - STORE E =3D 5 - -=EC=9D=B4 =EC=9D=B4=EB=B2=A4=ED=8A=B8 =EC=8B=9C=ED=80=80=EC=8A=A4=EB=8A=94= =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=9D=BC=EA=B4=80=EC=84=B1 =EC=8B=9C=EC=8A=A4= =ED=85=9C=EC=97=90 =EC=9B=90=EC=86=8C=EB=81=BC=EB=A6=AC=EC=9D=98 =EC=88=9C= =EC=84=9C=EA=B0=80 =EC=A1=B4=EC=9E=AC=ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94 = =EC=A7=91=ED=95=A9 -{ STORE A, STORE B, STORE C } =EA=B0=80 =EC=97=AD=EC=8B=9C =EC=9B=90=EC=86= =8C=EB=81=BC=EB=A6=AC=EC=9D=98 =EC=88=9C=EC=84=9C=EA=B0=80 =EC=A1=B4=EC=9E= =AC=ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94 =EC=A7=91=ED=95=A9 -{ STORE D, STORE E } =EB=B3=B4=EB=8B=A4 =EB=A8=BC=EC=A0=80 =EC=9D=BC=EC=96= =B4=EB=82=9C =EA=B2=83=EC=9C=BC=EB=A1=9C =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D= =98 =EB=82=98=EB=A8=B8=EC=A7=80 =EC=9A=94=EC=86=8C=EB=93=A4=EC=97=90 =EB=B3= =B4=EC=9D=B4=EB=8F=84=EB=A1=9D -=EC=A0=84=EB=8B=AC=EB=90=A9=EB=8B=88=EB=8B=A4: - - +-------+ : : - | | +------+ - | |------>| C=3D3 | } /\ - | | : +------+ }----- \ -----> =EC=8B=9C=EC=8A=A4=ED=85= =9C=EC=9D=98 =EB=82=98=EB=A8=B8=EC=A7=80 =EC=9A=94=EC=86=8C=EC=97=90 - | | : | A=3D1 | } \/ =EB=B3=B4=EC=97=AC=EC=A7= =88 =EC=88=98 =EC=9E=88=EB=8A=94 =EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=93=A4 - | | : +------+ } - | CPU 1 | : | B=3D2 | } - | | +------+ } - | | wwwwwwwwwwwwwwww } <--- =EC=97=AC=EA=B8=B0=EC=84=9C =EC=93= =B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=B0=B0=EB=A6=AC=EC=96= =B4 =EC=95=9E=EC=9D=98 - | | +------+ } =EB=AA=A8=EB=93=A0 =EC=8A=A4=ED=86= =A0=EC=96=B4=EA=B0=80 =EB=B0=B0=EB=A6=AC=EC=96=B4 =EB=92=A4=EC=9D=98 =EC=8A= =A4=ED=86=A0=EC=96=B4 - | | : | E=3D5 | } =EC=A0=84=EC=97=90 =EB=A9=94=EB= =AA=A8=EB=A6=AC =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90 =EC=A0=84=EB=8B=AC=EB= =90=98=EB=8F=84=EB=A1=9D - | | : +------+ } =ED=95=A9=EB=8B=88=EB=8B=A4 - | |------>| D=3D4 | } - | | +------+ - +-------+ : : - | - | CPU 1 =EC=97=90 =EC=9D=98=ED=95=B4 =EB=A9=94=EB=AA= =A8=EB=A6=AC =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90 =EC=A0=84=EB=8B=AC=EB=90= =98=EB=8A=94 - | =EC=9D=BC=EB=A0=A8=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96= =B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4 - V - - -=EB=91=98=EC=A7=B8, =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0= =B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=9D=98=EC=A1= =B4=EC=A0=81 =EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EB=93=A4=EC=9D=98 =EB=B6=80=EB=B6=84=EC=A0=81 =EC=88=9C=EC=84=9C -=EC=84=B8=EC=9A=B0=EA=B8=B0=EB=A1=9C =EB=8F=99=EC=9E=91=ED=95=A9=EB=8B=88= =EB=8B=A4. =EB=8B=A4=EC=9D=8C =EC=9D=BC=EB=A0=A8=EC=9D=98 =EC=9D=B4=EB=B2= =A4=ED=8A=B8=EB=93=A4=EC=9D=84 =EB=B3=B4=EC=84=B8=EC=9A=94: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - { B =3D 7; X =3D 9; Y =3D 8; C =3D &Y } - STORE A =3D 1 - STORE B =3D 2 - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - STORE C =3D &B LOAD X - STORE D =3D 4 LOAD C (gets &B) - LOAD *C (reads B) - -=EC=97=AC=EA=B8=B0=EC=97=90 =EB=B3=84=EB=8B=A4=EB=A5=B8 =EA=B0=9C=EC=9E=85= =EC=9D=B4 =EC=97=86=EB=8B=A4=EB=A9=B4, CPU 1 =EC=9D=98 =EC=93=B0=EA=B8=B0 = =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=97=90=EB=8F=84 =EB=B6=88=EA=B5=AC=ED=95=98= =EA=B3=A0 CPU 2 =EB=8A=94 CPU 1 -=EC=9D=98 =EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=93=A4=EC=9D=84 =EC=99=84=EC=A0=84= =ED=9E=88 =EB=AC=B4=EC=9E=91=EC=9C=84=EC=A0=81 =EC=88=9C=EC=84=9C=EB=A1=9C = =EC=9D=B8=EC=A7=80=ED=95=98=EA=B2=8C =EB=90=A9=EB=8B=88=EB=8B=A4: - - +-------+ : : : : - | | +------+ +-------+ | CPU 2 =EC=97=90 =EC= =9D=B8=EC=A7=80=EB=90=98=EB=8A=94 - | |------>| B=3D2 |----- --->| Y->8 | | =EC=97=85=EB=8D=B0= =EC=9D=B4=ED=8A=B8 =EC=9D=B4=EB=B2=A4=ED=8A=B8 - | | : +------+ \ +-------+ | =EC=8B=9C=ED=80=80= =EC=8A=A4 - | CPU 1 | : | A=3D1 | \ --->| C->&Y | V - | | +------+ | +-------+ - | | wwwwwwwwwwwwwwww | : : - | | +------+ | : : - | | : | C=3D&B |--- | : : +-------+ - | | : +------+ \ | +-------+ | | - | |------>| D=3D4 | ----------->| C->&B |------>| | - | | +------+ | +-------+ | | - +-------+ : : | : : | | - | : : | | - | : : | CPU 2 | - | +-------+ | | - =EB=B6=84=EB=AA=85=ED=9E=88 =EC=9E=98=EB=AA=BB=EB=90=9C ---> = | | B->7 |------>| | - B =EC=9D=98 =EA=B0=92 =EC=9D=B8=EC=A7=80 (!) | +----= ---+ | | - | : : | | - | +-------+ | | - X =EC=9D=98 =EB=A1=9C=EB=93=9C=EA=B0=80 B =EC=9D=98 ---> \ = | X->9 |------>| | - =EC=9D=BC=EA=B4=80=EC=84=B1 =EC=9C=A0=EC=A7=80=EB=A5=BC = \ +-------+ | | - =EC=A7=80=EC=97=B0=EC=8B=9C=ED=82=B4 ----->| B->= 2 | +-------+ - +-------+ - : : - - -=EC=95=9E=EC=9D=98 =EC=98=88=EC=97=90=EC=84=9C, CPU 2 =EB=8A=94 (B =EC=9D= =98 =EA=B0=92=EC=9D=B4 =EB=90=A0) *C =EC=9D=98 =EA=B0=92 =EC=9D=BD=EA=B8=B0= =EA=B0=80 C =EC=9D=98 LOAD =EB=92=A4=EC=97=90 =EC=9D=B4=EC=96=B4=EC=A7=90= =EC=97=90=EB=8F=84 -B =EA=B0=80 7 =EC=9D=B4=EB=9D=BC=EB=8A=94 =EA=B2=B0=EA=B3=BC=EB=A5=BC =EC= =96=BB=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=ED=95=98=EC=A7=80=EB=A7=8C, =EB=A7=8C=EC=95=BD =EC=A3=BC=EC=86=8C =EC=9D= =98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 C =EC=9D=98 =EB= =A1=9C=EB=93=9C=EC=99=80 *C (=EC=A6=89, B) =EC=9D=98 =EB=A1=9C=EB=93=9C =EC= =82=AC=EC=9D=B4=EC=97=90 -=EC=9E=88=EC=97=88=EB=8B=A4=EB=A9=B4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - { B =3D 7; X =3D 9; Y =3D 8; C =3D &Y } - STORE A =3D 1 - STORE B =3D 2 - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - STORE C =3D &B LOAD X - STORE D =3D 4 LOAD C (gets &B) - <=EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC= =96=B4> - LOAD *C (reads B) - -=EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =EB=90=A9=EB=8B=88=EB=8B=A4: - - +-------+ : : : : - | | +------+ +-------+ - | |------>| B=3D2 |----- --->| Y->8 | - | | : +------+ \ +-------+ - | CPU 1 | : | A=3D1 | \ --->| C->&Y | - | | +------+ | +-------+ - | | wwwwwwwwwwwwwwww | : : - | | +------+ | : : - | | : | C=3D&B |--- | : : +-------+ - | | : +------+ \ | +-------+ | | - | |------>| D=3D4 | ----------->| C->&B |------>| | - | | +------+ | +-------+ | | - +-------+ : : | : : | | - | : : | | - | : : | CPU 2 | - | +-------+ | | - | | X->9 |------>| | - | +-------+ | | - C =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=95=9E=EC=9D=98 = ---> \ aaaaaaaaaaaaaaaaa | | - =EB=AA=A8=EB=93=A0 =EC=9D=B4=EB=B2=A4=ED=8A=B8 =EA=B2=B0=EA=B3=BC=EA=B0= =80 \ +-------+ | | - =EB=92=A4=EC=9D=98 =EB=A1=9C=EB=93=9C=EC=97=90=EA=B2=8C = ----->| B->2 |------>| | - =EB=B3=B4=EC=9D=B4=EA=B2=8C =EA=B0=95=EC=A0=9C=ED=95=9C=EB=8B=A4 = +-------+ | | - : : +-------+ - - -=EC=85=8B=EC=A7=B8, =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A= =94 =EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93= =A4=EC=97=90=EC=9D=98 =EB=B6=80=EB=B6=84=EC=A0=81 =EC=88=9C=EC=84=9C =EC=84= =B8=EC=9A=B0=EA=B8=B0=EB=A1=9C =EB=8F=99=EC=9E=91=ED=95=A9=EB=8B=88=EB=8B= =A4. -=EC=95=84=EB=9E=98=EC=9D=98 =EC=9D=BC=EB=A0=A8=EC=9D=98 =EC=9D=B4=EB=B2=A4= =ED=8A=B8=EB=A5=BC =EB=B4=85=EC=8B=9C=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - { A =3D 0, B =3D 9 } - STORE A=3D1 - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - STORE B=3D2 - LOAD B - LOAD A - -CPU 1 =EC=9D=80 =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC = =EC=B3=A4=EC=A7=80=EB=A7=8C, =EB=B3=84=EB=8B=A4=EB=A5=B8 =EA=B0=9C=EC=9E=85= =EC=9D=B4 =EC=97=86=EB=8B=A4=EB=A9=B4 CPU 2 =EB=8A=94 CPU 1 =EC=97=90=EC=84= =9C =ED=96=89=ED=95=B4=EC=A7=84 -=EC=9D=B4=EB=B2=A4=ED=8A=B8=EC=9D=98 =EA=B2=B0=EA=B3=BC=EB=A5=BC =EB=AC=B4= =EC=9E=91=EC=9C=84=EC=A0=81 =EC=88=9C=EC=84=9C=EB=A1=9C =EC=9D=B8=EC=A7=80= =ED=95=98=EA=B2=8C =EB=90=A9=EB=8B=88=EB=8B=A4. - - +-------+ : : : : - | | +------+ +-------+ - | |------>| A=3D1 |------ --->| A->0 | - | | +------+ \ +-------+ - | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 | - | | +------+ | +-------+ - | |------>| B=3D2 |--- | : : - | | +------+ \ | : : +-------+ - +-------+ : : \ | +-------+ | | - ---------->| B->2 |------>| | - | +-------+ | CPU 2 | - | | A->0 |------>| | - | +-------+ | | - | : : +-------+ - \ : : - \ +-------+ - ---->| A->1 | - +-------+ - : : - - -=ED=95=98=EC=A7=80=EB=A7=8C, =EB=A7=8C=EC=95=BD =EC=9D=BD=EA=B8=B0 =EB=B0= =B0=EB=A6=AC=EC=96=B4=EA=B0=80 B =EC=9D=98 =EB=A1=9C=EB=93=9C=EC=99=80 A = =EC=9D=98 =EB=A1=9C=EB=93=9C =EC=82=AC=EC=9D=B4=EC=97=90 =EC=A1=B4=EC=9E=AC= =ED=95=9C=EB=8B=A4=EB=A9=B4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - { A =3D 0, B =3D 9 } - STORE A=3D1 - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - STORE B=3D2 - LOAD B - <=EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - LOAD A - -CPU 1 =EC=97=90 =EC=9D=98=ED=95=B4 =EB=A7=8C=EB=93=A4=EC=96=B4=EC=A7=84 = =EB=B6=80=EB=B6=84=EC=A0=81 =EC=88=9C=EC=84=9C=EA=B0=80 CPU 2 =EC=97=90=EB= =8F=84 =EA=B7=B8=EB=8C=80=EB=A1=9C =EC=9D=B8=EC=A7=80=EB=90=A9=EB=8B=88=EB= =8B=A4: - - +-------+ : : : : - | | +------+ +-------+ - | |------>| A=3D1 |------ --->| A->0 | - | | +------+ \ +-------+ - | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 | - | | +------+ | +-------+ - | |------>| B=3D2 |--- | : : - | | +------+ \ | : : +-------+ - +-------+ : : \ | +-------+ | | - ---------->| B->2 |------>| | - | +-------+ | CPU 2 | - | : : | | - | : : | | - =EC=97=AC=EA=B8=B0=EC=84=9C =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96= =B4=EB=8A=94 ----> \ rrrrrrrrrrrrrrrrr | | - B =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=A0=84=EC=9D=98 = \ +-------+ | | - =EB=AA=A8=EB=93=A0 =EA=B2=B0=EA=B3=BC=EB=A5=BC CPU 2 =EC=97=90 = ---->| A->1 |------>| | - =EB=B3=B4=EC=9D=B4=EB=8F=84=EB=A1=9D =ED=95=9C=EB=8B=A4 = +-------+ | | - : : +-------+ - - -=EB=8D=94 =EC=99=84=EB=B2=BD=ED=95=9C =EC=84=A4=EB=AA=85=EC=9D=84 =EC=9C= =84=ED=95=B4, A =EC=9D=98 =EB=A1=9C=EB=93=9C=EA=B0=80 =EC=9D=BD=EA=B8=B0 = =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=95=9E=EA=B3=BC =EB=92=A4=EC=97=90 =EC=9E=88= =EC=9C=BC=EB=A9=B4 =EC=96=B4=EB=96=BB=EA=B2=8C =EB=90=A0=EC=A7=80 -=EC=83=9D=EA=B0=81=ED=95=B4 =EB=B4=85=EC=8B=9C=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - { A =3D 0, B =3D 9 } - STORE A=3D1 - <=EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - STORE B=3D2 - LOAD B - LOAD A [first load of A] - <=EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - LOAD A [second load of A] - -A =EC=9D=98 =EB=A1=9C=EB=93=9C =EB=91=90=EA=B0=9C=EA=B0=80 =EB=AA=A8=EB=91= =90 B =EC=9D=98 =EB=A1=9C=EB=93=9C =EB=92=A4=EC=97=90 =EC=9E=88=EC=A7=80=EB= =A7=8C, =EC=84=9C=EB=A1=9C =EB=8B=A4=EB=A5=B8 =EA=B0=92=EC=9D=84 =EC=96=BB= =EC=96=B4=EC=98=AC =EC=88=98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - +-------+ : : : : - | | +------+ +-------+ - | |------>| A=3D1 |------ --->| A->0 | - | | +------+ \ +-------+ - | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 | - | | +------+ | +-------+ - | |------>| B=3D2 |--- | : : - | | +------+ \ | : : +-------+ - +-------+ : : \ | +-------+ | | - ---------->| B->2 |------>| | - | +-------+ | CPU 2 | - | : : | | - | : : | | - | +-------+ | | - | | A->0 |------>| 1st | - | +-------+ | | - =EC=97=AC=EA=B8=B0=EC=84=9C =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96= =B4=EB=8A=94 ----> \ rrrrrrrrrrrrrrrrr | | - B =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=A0=84=EC=9D=98 = \ +-------+ | | - =EB=AA=A8=EB=93=A0 =EA=B2=B0=EA=B3=BC=EB=A5=BC CPU 2 =EC=97=90 = ---->| A->1 |------>| 2nd | - =EB=B3=B4=EC=9D=B4=EB=8F=84=EB=A1=9D =ED=95=9C=EB=8B=A4 = +-------+ | | - : : +-------+ - - -=ED=95=98=EC=A7=80=EB=A7=8C CPU 1 =EC=97=90=EC=84=9C=EC=9D=98 A =EC=97=85= =EB=8D=B0=EC=9D=B4=ED=8A=B8=EB=8A=94 =EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC= =EC=96=B4=EA=B0=80 =EC=99=84=EB=A3=8C=EB=90=98=EA=B8=B0 =EC=A0=84=EC=97=90= =EB=8F=84 =EB=B3=B4=EC=9D=BC =EC=88=98=EB=8F=84 -=EC=9E=88=EA=B8=B4 =ED=95=A9=EB=8B=88=EB=8B=A4: - - +-------+ : : : : - | | +------+ +-------+ - | |------>| A=3D1 |------ --->| A->0 | - | | +------+ \ +-------+ - | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 | - | | +------+ | +-------+ - | |------>| B=3D2 |--- | : : - | | +------+ \ | : : +-------+ - +-------+ : : \ | +-------+ | | - ---------->| B->2 |------>| | - | +-------+ | CPU 2 | - | : : | | - \ : : | | - \ +-------+ | | - ---->| A->1 |------>| 1st | - +-------+ | | - rrrrrrrrrrrrrrrrr | | - +-------+ | | - | A->1 |------>| 2nd | - +-------+ | | - : : +-------+ - - -=EC=97=AC=EA=B8=B0=EC=84=9C =EB=B3=B4=EC=9E=A5=EB=90=98=EB=8A=94 =EA=B1=B4= , =EB=A7=8C=EC=95=BD B =EC=9D=98 =EB=A1=9C=EB=93=9C=EA=B0=80 B =3D=3D 2 =EB= =9D=BC=EB=8A=94 =EA=B2=B0=EA=B3=BC=EB=A5=BC =EB=B4=A4=EB=8B=A4=EB=A9=B4, A = =EC=97=90=EC=9D=98 =EB=91=90=EB=B2=88=EC=A7=B8 -=EB=A1=9C=EB=93=9C=EB=8A=94 =ED=95=AD=EC=83=81 A =3D=3D 1 =EC=9D=84 =EB=B3= =B4=EA=B2=8C =EB=90=A0 =EA=B2=83=EC=9D=B4=EB=9D=BC=EB=8A=94 =EA=B2=81=EB=8B= =88=EB=8B=A4. A =EC=97=90=EC=9D=98 =EC=B2=AB=EB=B2=88=EC=A7=B8 =EB=A1=9C= =EB=93=9C=EC=97=90=EB=8A=94 =EA=B7=B8=EB=9F=B0 -=EB=B3=B4=EC=9E=A5=EC=9D=B4 =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4; A =3D=3D= 0 =EC=9D=B4=EA=B1=B0=EB=82=98 A =3D=3D 1 =EC=9D=B4=EA=B1=B0=EB=82=98 =EB= =91=98 =EC=A4=91 =ED=95=98=EB=82=98=EC=9D=98 =EA=B2=B0=EA=B3=BC=EB=A5=BC = =EB=B3=B4=EA=B2=8C =EB=90=A0=EA=B2=81=EB=8B=88=EB=8B=A4. - - -=EC=9D=BD=EA=B8=B0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4= VS =EB=A1=9C=EB=93=9C =EC=98=88=EC=B8=A1 -------------------------------- - -=EB=A7=8E=EC=9D=80 CPU=EB=93=A4=EC=9D=B4 =EB=A1=9C=EB=93=9C=EB=A5=BC =EC= =98=88=EC=B8=A1=EC=A0=81=EC=9C=BC=EB=A1=9C (speculatively) =ED=95=A9=EB=8B= =88=EB=8B=A4: =EC=96=B4=EB=96=A4 =EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC =EB= =A9=94=EB=AA=A8=EB=A6=AC=EC=97=90=EC=84=9C -=EB=A1=9C=EB=93=9C=ED=95=B4=EC=95=BC =ED=95=98=EA=B2=8C =EB=90=A0=EC=A7=80= =EC=98=88=EC=B8=A1=EC=9D=84 =ED=96=88=EB=8B=A4=EB=A9=B4, =ED=95=B4=EB=8B= =B9 =EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC =EB=A1=9C=EB=93=9C=ED=95=98=EB=8A= =94 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=84 =EC=8B=A4=EC=A0= =9C=EB=A1=9C=EB=8A=94 -=EC=95=84=EC=A7=81 =EB=A7=8C=EB=82=98=EC=A7=80 =EC=95=8A=EC=95=98=EB=8D=94= =EB=9D=BC=EB=8F=84 =EB=8B=A4=EB=A5=B8 =EB=A1=9C=EB=93=9C =EC=9E=91=EC=97=85= =EC=9D=B4 =EC=97=86=EC=96=B4 =EB=B2=84=EC=8A=A4 (bus) =EA=B0=80 =EC=95=84= =EB=AC=B4 =EC=9D=BC=EB=8F=84 =ED=95=98=EA=B3=A0 =EC=9E=88=EC=A7=80 -=EC=95=8A=EB=8B=A4=EB=A9=B4, =EA=B7=B8 =EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5= =BC =EB=A1=9C=EB=93=9C=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4=ED=9B=84=EC= =97=90 =EC=8B=A4=EC=A0=9C =EB=A1=9C=EB=93=9C =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB= =9F=AD=EC=85=98=EC=9D=B4 =EC=8B=A4=ED=96=89=EB=90=98=EB=A9=B4 CPU =EA=B0=80 -=EC=9D=B4=EB=AF=B8 =EA=B7=B8 =EA=B0=92=EC=9D=84 =EA=B0=80=EC=A7=80=EA=B3= =A0 =EC=9E=88=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 =EA=B7=B8 =EB=A1=9C=EB= =93=9C =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=80 =EC=A6=89=EC= =8B=9C =EC=99=84=EB=A3=8C=EB=90=A9=EB=8B=88=EB=8B=A4. - -=ED=95=B4=EB=8B=B9 CPU =EB=8A=94 =EC=8B=A4=EC=A0=9C=EB=A1=9C=EB=8A=94 =EA= =B7=B8 =EA=B0=92=EC=9D=B4 =ED=95=84=EC=9A=94=EC=B9=98 =EC=95=8A=EC=95=98=EB= =8B=A4=EB=8A=94 =EC=82=AC=EC=8B=A4=EC=9D=B4 =EB=82=98=EC=A4=91=EC=97=90 =EB= =93=9C=EB=9F=AC=EB=82=A0 =EC=88=98=EB=8F=84 =EC=9E=88=EB=8A=94=EB=8D=B0 - -=ED=95=B4=EB=8B=B9 =EB=A1=9C=EB=93=9C =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD= =EC=85=98=EC=9D=B4 =EB=B8=8C=EB=9E=9C=EC=B9=98=EB=A1=9C =EC=9A=B0=ED=9A=8C= =EB=90=98=EA=B1=B0=EB=82=98 =ED=96=88=EC=9D=84 =EC=88=98 =EC=9E=88=EA=B2=A0= =EC=A3=A0 - , =EA=B7=B8=EB=A0=87=EA=B2=8C =EB=90=98=EB=A9=B4 =EC=95=9E=EC= =84=9C -=EC=9D=BD=EC=96=B4=EB=91=94 =EA=B0=92=EC=9D=84 =EB=B2=84=EB=A6=AC=EA=B1=B0= =EB=82=98 =EB=82=98=EC=A4=91=EC=9D=98 =EC=82=AC=EC=9A=A9=EC=9D=84 =EC=9C=84= =ED=95=B4 =EC=BA=90=EC=8B=9C=EC=97=90 =EB=84=A3=EC=96=B4=EB=91=98 =EC=88=98= =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EB=8B=A4=EC=9D=8C=EC=9D=84 =EC=83=9D=EA=B0=81=ED=95=B4 =EB=B4=85=EC=8B=9C= =EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - LOAD B - DIVIDE } =EB=82=98=EB=88=84=EA=B8=B0 =EB=AA=85=EB=A0=B9=EC=9D=80 =EC= =9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C - DIVIDE } =EA=B8=B4 =EC=8B=9C=EA=B0=84=EC=9D=84 =ED=95=84=EC=9A=94=EB= =A1=9C =ED=95=A9=EB=8B=88=EB=8B=A4 - LOAD A - -=EB=8A=94 =EC=9D=B4=EB=A0=87=EA=B2=8C =EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A= =B5=EB=8B=88=EB=8B=A4: - - : : +-------+ - +-------+ | | - --->| B->2 |------>| | - +-------+ | CPU 2 | - : :DIVIDE | | - +-------+ | | - =EB=82=98=EB=88=84=EA=B8=B0 =ED=95=98=EB=8A=90=EB=9D=BC =EB=B0=94=EC=81= =9C ---> --->| A->0 |~~~~ | | - CPU =EB=8A=94 A =EC=9D=98 LOAD =EB=A5=BC +-------+ = ~ | | - =EC=98=88=EC=B8=A1=ED=95=B4=EC=84=9C =EC=88=98=ED=96=89=ED=95=9C=EB=8B=A4= : : ~ | | - : :DIVIDE | | - : : ~ | | - =EB=82=98=EB=88=84=EA=B8=B0=EA=B0=80 =EB=81=9D=EB=82=98=EB=A9=B4 --= -> ---> : : ~-->| | - CPU =EB=8A=94 =ED=95=B4=EB=8B=B9 LOAD =EB=A5=BC : = : | | - =EC=A6=89=EA=B0=81 =EC=99=84=EB=A3=8C=ED=95=9C=EB=8B=A4 = : : +-------+ - - -=EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=82=98 =EC=A3=BC=EC=86=8C= =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=91=90= =EB=B2=88=EC=A7=B8 =EB=A1=9C=EB=93=9C =EC=A7=81=EC=A0=84=EC=97=90 =EB=86=93= =EB=8A=94=EB=8B=A4=EB=A9=B4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - LOAD B - DIVIDE - DIVIDE - <=EC=9D=BD=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - LOAD A - -=EC=98=88=EC=B8=A1=EC=9C=BC=EB=A1=9C =EC=96=BB=EC=96=B4=EC=A7=84 =EA=B0=92= =EC=9D=80 =EC=82=AC=EC=9A=A9=EB=90=9C =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 = =ED=83=80=EC=9E=85=EC=97=90 =EB=94=B0=EB=9D=BC=EC=84=9C =ED=95=B4=EB=8B=B9 = =EA=B0=92=EC=9D=B4 =EC=98=B3=EC=9D=80=EC=A7=80 =EA=B2=80=ED=86=A0=EB=90=98= =EA=B2=8C -=EB=90=A9=EB=8B=88=EB=8B=A4. =EB=A7=8C=EC=95=BD =ED=95=B4=EB=8B=B9 =EB=A9= =94=EB=AA=A8=EB=A6=AC =EC=98=81=EC=97=AD=EC=97=90 =EB=B3=80=ED=99=94=EA=B0= =80 =EC=97=86=EC=97=88=EB=8B=A4=EB=A9=B4, =EC=98=88=EC=B8=A1=EC=9C=BC=EB=A1= =9C =EC=96=BB=EC=96=B4=EB=91=90=EC=97=88=EB=8D=98 =EA=B0=92=EC=9D=B4 -=EC=82=AC=EC=9A=A9=EB=90=A9=EB=8B=88=EB=8B=A4: - - : : +-------+ - +-------+ | | - --->| B->2 |------>| | - +-------+ | CPU 2 | - : :DIVIDE | | - +-------+ | | - =EB=82=98=EB=88=84=EA=B8=B0 =ED=95=98=EB=8A=90=EB=9D=BC =EB=B0=94=EC=81= =9C ---> --->| A->0 |~~~~ | | - CPU =EB=8A=94 A =EC=9D=98 LOAD =EB=A5=BC +-------+ = ~ | | - =EC=98=88=EC=B8=A1=ED=95=9C=EB=8B=A4 : = : ~ | | - : :DIVIDE | | - : : ~ | | - : : ~ | | - rrrrrrrrrrrrrrrr~ | | - : : ~ | | - : : ~-->| | - : : | | - : : +-------+ - - -=ED=95=98=EC=A7=80=EB=A7=8C =EB=8B=A4=EB=A5=B8 CPU =EC=97=90=EC=84=9C =EC= =97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=EB=82=98 =EB=AC=B4=ED=9A=A8=ED=99=94=EA= =B0=80 =EC=9E=88=EC=97=88=EB=8B=A4=EB=A9=B4, =EA=B7=B8 =EC=98=88=EC=B8=A1= =EC=9D=80 =EB=AC=B4=ED=9A=A8=ED=99=94=EB=90=98=EA=B3=A0 =EA=B7=B8 =EA=B0=92= =EC=9D=80 -=EB=8B=A4=EC=8B=9C =EC=9D=BD=ED=98=80=EC=A7=91=EB=8B=88=EB=8B=A4: - - : : +-------+ - +-------+ | | - --->| B->2 |------>| | - +-------+ | CPU 2 | - : :DIVIDE | | - +-------+ | | - =EB=82=98=EB=88=84=EA=B8=B0 =ED=95=98=EB=8A=90=EB=9D=BC =EB=B0=94=EC=81= =9C ---> --->| A->0 |~~~~ | | - CPU =EB=8A=94 A =EC=9D=98 LOAD =EB=A5=BC +-------+ = ~ | | - =EC=98=88=EC=B8=A1=ED=95=9C=EB=8B=A4 : = : ~ | | - : :DIVIDE | | - : : ~ | | - : : ~ | | - rrrrrrrrrrrrrrrrr | | - +-------+ | | - =EC=98=88=EC=B8=A1=EC=84=B1 =EB=8F=99=EC=9E=91=EC=9D=80 =EB=AC=B4=ED=9A= =A8=ED=99=94 =EB=90=98=EA=B3=A0 ---> --->| A->1 |------>| | - =EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=EB=90=9C =EA=B0=92=EC=9D=B4 =EB=8B= =A4=EC=8B=9C =EC=9D=BD=ED=98=80=EC=A7=84=EB=8B=A4 +-------+ = | | - : : +-------+ - - -MULTICOPY =EC=9B=90=EC=9E=90=EC=84=B1 ----------------- - -Multicopy =EC=9B=90=EC=9E=90=EC=84=B1=EC=9D=80 =EC=8B=A4=EC=A0=9C=EC=9D=98= =EC=BB=B4=ED=93=A8=ED=84=B0 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84=9C = =ED=95=AD=EC=83=81 =EC=A0=9C=EA=B3=B5=EB=90=98=EC=A7=80=EB=8A=94 =EC=95=8A= =EB=8A=94, =EC=88=9C=EC=84=9C =EB=A7=9E=EC=B6=94=EA=B8=B0=EC=97=90 -=EB=8C=80=ED=95=9C =EC=83=81=EB=8B=B9=ED=9E=88 =EC=A7=81=EA=B4=80=EC=A0=81= =EC=9D=B8 =EA=B0=9C=EB=85=90=EC=9C=BC=EB=A1=9C, =ED=8A=B9=EC=A0=95 =EC=8A= =A4=ED=86=A0=EC=96=B4=EA=B0=80 =EB=AA=A8=EB=93=A0 CPU =EB=93=A4=EC=97=90=EA= =B2=8C =EB=8F=99=EC=8B=9C=EC=97=90 =EB=B3=B4=EC=97=AC=EC=A7=80=EA=B2=8C -=EB=90=A8=EC=9D=84, =EB=8B=AC=EB=A6=AC =EB=A7=90=ED=95=98=EC=9E=90=EB=A9= =B4 =EB=AA=A8=EB=93=A0 CPU =EB=93=A4=EC=9D=B4 =EB=AA=A8=EB=93=A0 =EC=8A=A4= =ED=86=A0=EC=96=B4=EB=93=A4=EC=9D=B4 =EB=B3=B4=EC=97=AC=EC=A7=80=EB=8A=94 = =EC=88=9C=EC=84=9C=EB=A5=BC =EB=8F=99=EC=9D=98=ED=95=98=EA=B2=8C =EB=90=98= =EB=8A=94 -=EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7=80=EB=A7=8C, =EC=99= =84=EC=A0=84=ED=95=9C multicopy =EC=9B=90=EC=9E=90=EC=84=B1=EC=9D=98 =EC=82= =AC=EC=9A=A9=EC=9D=80 =EA=B0=80=EC=B9=98=EC=9E=88=EB=8A=94 =ED=95=98=EB=93= =9C=EC=9B=A8=EC=96=B4 -=EC=B5=9C=EC=A0=81=ED=99=94=EB=93=A4=EC=9D=84 =EB=AC=B4=EB=8A=A5=ED=95=98= =EA=B2=8C =EB=A7=8C=EB=93=A4=EC=96=B4=EB=B2=84=EB=A6=B4 =EC=88=98 =EC=9E=88= =EC=96=B4=EC=84=9C, =EB=B3=B4=EB=8B=A4 =EC=99=84=ED=99=94=EB=90=9C =ED=98= =95=ED=83=9C=EC=9D=98 ``=EB=8B=A4=EB=A5=B8 multicopy -=EC=9B=90=EC=9E=90=EC=84=B1'' =EB=9D=BC=EB=8A=94 =EC=9D=B4=EB=A6=84=EC=9D= =98, =ED=8A=B9=EC=A0=95 =EC=8A=A4=ED=86=A0=EC=96=B4=EA=B0=80 =EB=AA=A8=EB= =93=A0 -=EB=8B=A4=EB=A5=B8- CPU =EB=93=A4=EC=97=90=EA=B2=8C=EB=8A=94 =EB=8F= =99=EC=8B=9C=EC=97=90 =EB=B3=B4=EC=97=AC=EC=A7=80=EA=B2=8C -=ED=95=98=EB=8A=94 =EB=B3=B4=EC=9E=A5=EC=9D=84 =EB=8C=80=EC=8B=A0 =EC=A0= =9C=EA=B3=B5=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EB=AC=B8=EC=84=9C=EC= =9D=98 =EB=92=B7=EB=B6=80=EB=B6=84=EB=93=A4=EC=9D=80 =EC=9D=B4 =EC=99=84=ED= =99=94=EB=90=9C =ED=98=95=ED=83=9C=EC=97=90 =EB=8C=80=ED=95=B4 =EB=85=BC=ED= =95=98=EA=B2=8C -=EB=90=A9=EB=8B=88=EB=8B=A4=EB=A7=8C, =EB=8B=A8=EC=88=9C=ED=9E=88 ``multic= opy =EC=9B=90=EC=9E=90=EC=84=B1'' =EC=9D=B4=EB=9D=BC=EA=B3=A0 =EB=B6=80=EB= =A5=B4=EA=B2=A0=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=98=88=EA=B0=80 multicopy =EC=9B=90=EC=9E= =90=EC=84=B1=EC=9D=84 =EB=B3=B4=EC=9E=85=EB=8B=88=EB=8B=A4: - - CPU 1 CPU 2 CPU 3 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - { X =3D 0, Y =3D 0 } - STORE X=3D1 r1=3DLOAD X (reads 1) LOAD Y (reads 1) - <=EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4> <=EC=9D=BD=EA=B8=B0 = =EB=B0=B0=EB=A6=AC=EC=96=B4> - STORE Y=3Dr1 LOAD X - -CPU 2 =EC=9D=98 Y =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EC=97=90 = =EC=82=AC=EC=9A=A9=EB=90=98=EB=8A=94 X =EB=A1=9C=EB=93=9C=EC=9D=98 =EA=B2= =B0=EA=B3=BC=EA=B0=80 1 =EC=9D=B4=EC=97=88=EA=B3=A0 CPU 3 =EC=9D=98 Y =EB= =A1=9C=EB=93=9C=EA=B0=80 -1=EC=9D=84 =EB=A6=AC=ED=84=B4=ED=96=88=EB=8B=A4=EA=B3=A0 =ED=95=B4=EB=B4= =85=EC=8B=9C=EB=8B=A4. =EC=9D=B4=EB=8A=94 CPU 1 =EC=9D=98 X =EB=A1=9C=EC= =9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EA=B0=80 CPU 2 =EC=9D=98 X =EB=A1=9C=EB= =B6=80=ED=84=B0=EC=9D=98 -=EB=A1=9C=EB=93=9C=EB=A5=BC =EC=95=9E=EC=84=9C=EA=B3=A0 CPU 2 =EC=9D=98 Y = =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EA=B0=80 CPU 3 =EC=9D=98 Y = =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C=EB=A5=BC =EC=95=9E= =EC=84=AC=EC=9D=84 -=EC=9D=98=EB=AF=B8=ED=95=A9=EB=8B=88=EB=8B=A4. =EB=98=90=ED=95=9C, =EC=97= =AC=EA=B8=B0=EC=84=9C=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6= =AC=EC=96=B4=EB=93=A4=EC=9D=80 CPU 2 =EA=B0=80 =EC=9E=90=EC=8B=A0=EC=9D=98 = =EB=A1=9C=EB=93=9C=EB=A5=BC =EC=9E=90=EC=8B=A0=EC=9D=98 -=EC=8A=A4=ED=86=A0=EC=96=B4 =EC=A0=84=EC=97=90 =EC=88=98=ED=96=89=ED=95=98= =EA=B3=A0, CPU 3 =EA=B0=80 Y =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C= =EB=93=9C=EB=A5=BC X =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93= =9C =EC=A0=84=EC=97=90 =EC=88=98=ED=96=89=ED=95=A8=EC=9D=84 -=EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. =EA=B7=B8=EB=9F=BC "CPU 3 = =EC=9D=98 X =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C=EB=8A= =94 0 =EC=9D=84 =EB=A6=AC=ED=84=B4=ED=95=A0 =EC=88=98 =EC=9E=88=EC=9D=84=EA= =B9=8C=EC=9A=94?" - -CPU 3 =EC=9D=98 X =EB=A1=9C=EB=93=9C=EA=B0=80 CPU 2 =EC=9D=98 =EB=A1=9C=EB= =93=9C=EB=B3=B4=EB=8B=A4 =EB=92=A4=EC=97=90 =EC=9D=B4=EB=A3=A8=EC=96=B4=EC= =A1=8C=EC=9C=BC=EB=AF=80=EB=A1=9C, CPU 3 =EC=9D=98 X =EB=A1=9C=EB=B6=80=ED= =84=B0=EC=9D=98 -=EB=A1=9C=EB=93=9C=EB=8A=94 1 =EC=9D=84 =EB=A6=AC=ED=84=B4=ED=95=9C=EB=8B= =A4=EA=B3=A0 =EC=98=88=EC=83=81=ED=95=98=EB=8A=94=EA=B2=8C =EB=8B=B9=EC=97= =B0=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4=EB=9F=B0 =EC=98=88=EC=83=81=EC= =9D=80 multicopy -=EC=9B=90=EC=9E=90=EC=84=B1=EC=9C=BC=EB=A1=9C=EB=B6=80=ED=84=B0 =EB=82=98= =EC=98=B5=EB=8B=88=EB=8B=A4: CPU B =EC=97=90=EC=84=9C =EC=88=98=ED=96=89=EB= =90=9C =EB=A1=9C=EB=93=9C=EA=B0=80 CPU A =EC=9D=98 =EA=B0=99=EC=9D=80 =EB= =B3=80=EC=88=98=EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 -=EB=A1=9C=EB=93=9C=EB=A5=BC =EB=92=A4=EB=94=B0=EB=A5=B8=EB=8B=A4=EB=A9=B4 = (=EA=B7=B8=EB=A6=AC=EA=B3=A0 CPU A =EA=B0=80 =EC=9E=90=EC=8B=A0=EC=9D=B4 = =EC=9D=BD=EC=9D=80 =EA=B0=92=EC=9C=BC=EB=A1=9C =EB=A8=BC=EC=A0=80 =ED=95=B4= =EB=8B=B9 =EB=B3=80=EC=88=98=EC=97=90 =EC=8A=A4=ED=86=A0=EC=96=B4 -=ED=95=98=EC=A7=80 =EC=95=8A=EC=95=98=EB=8B=A4=EB=A9=B4) multicopy =EC=9B= =90=EC=9E=90=EC=84=B1=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=98=EB=8A=94 =EC=8B= =9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84=9C=EB=8A=94, CPU B =EC=9D=98 =EB=A1=9C= =EB=93=9C=EA=B0=80 CPU A -=EC=9D=98 =EB=A1=9C=EB=93=9C=EC=99=80 =EA=B0=99=EC=9D=80 =EA=B0=92 =EB=98= =90=EB=8A=94 =EA=B7=B8 =EB=82=98=EC=A4=91 =EA=B0=92=EC=9D=84 =EB=A6=AC=ED= =84=B4=ED=95=B4=EC=95=BC=EB=A7=8C =ED=95=A9=EB=8B=88=EB=8B=A4. =ED=95=98= =EC=A7=80=EB=A7=8C, =EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=9D=80 -=EC=8B=9C=EC=8A=A4=ED=85=9C=EB=93=A4=EC=9D=B4 multicopy =EC=9B=90=EC=9E=90= =EC=84=B1=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=A0 =EA=B2=83=EC=9D=84 =EC=9A=94= =EA=B5=AC=ED=95=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EC=95=9E=EC=9D=98 =EB=B2=94=EC=9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0= =B0=EB=A6=AC=EC=96=B4=EC=9D=98 =EC=82=AC=EC=9A=A9=EC=9D=80 =EB=AA=A8=EB=93= =A0 multicopy =EC=9B=90=EC=9E=90=EC=84=B1=EC=9D=98 =EB=B6=80=EC=A1=B1=EC=9D= =84 =EB=B3=B4=EC=83=81=ED=95=B4=EC=A4=8D=EB=8B=88=EB=8B=A4. -=EC=95=9E=EC=9D=98 =EC=98=88=EC=97=90=EC=84=9C, CPU 2 =EC=9D=98 X =EB=A1= =9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C=EA=B0=80 1 =EC=9D=84 =EB= =A6=AC=ED=84=B4=ED=96=88=EA=B3=A0 CPU 3 =EC=9D=98 Y =EB=A1=9C=EB=B6=80=ED= =84=B0=EC=9D=98 -=EB=A1=9C=EB=93=9C=EA=B0=80 1 =EC=9D=84 =EB=A6=AC=ED=84=B4=ED=96=88=EB=8B= =A4=EB=A9=B4, CPU 3 =EC=9D=98 X =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1= =9C=EB=93=9C=EB=8A=94 1=EC=9D=84 =EB=A6=AC=ED=84=B4=ED=95=B4=EC=95=BC=EB=A7= =8C =ED=95=A9=EB=8B=88=EB=8B=A4. - -=ED=95=98=EC=A7=80=EB=A7=8C, =EC=9D=98=EC=A1=B4=EC=84=B1, =EC=9D=BD=EA=B8= =B0 =EB=B0=B0=EB=A6=AC=EC=96=B4, =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=8A=94 =ED=95=AD=EC=83=81 non-multicopy =EC=9B=90=EC=9E=90=EC=84= =B1=EC=9D=84 =EB=B3=B4=EC=83=81=ED=95=B4 -=EC=A3=BC=EC=A7=80=EB=8A=94 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=98= =88=EB=A5=BC =EB=93=A4=EC=96=B4, CPU 2 =EC=9D=98 =EB=B2=94=EC=9A=A9 =EB=B0= =B0=EB=A6=AC=EC=96=B4=EA=B0=80 =EC=95=9E=EC=9D=98 =EC=98=88=EC=97=90=EC=84= =9C =EC=82=AC=EB=9D=BC=EC=A0=B8=EC=84=9C -=EC=95=84=EB=9E=98=EC=B2=98=EB=9F=BC =EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=9D=98= =EC=A1=B4=EC=84=B1=EB=A7=8C =EB=82=A8=EA=B2=8C =EB=90=98=EC=97=88=EB=8B=A4= =EA=B3=A0 =ED=95=B4=EB=B4=85=EC=8B=9C=EB=8B=A4: - - CPU 1 CPU 2 CPU 3 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - { X =3D 0, Y =3D 0 } - STORE X=3D1 r1=3DLOAD X (reads 1) LOAD Y (reads 1) - <=EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=9D=98=EC=A1=B4=EC=84=B1> <=EC=9D=BD= =EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96=B4> - STORE Y=3Dr1 LOAD X (reads 0) - -=EC=9D=B4 =EB=B3=80=ED=99=94=EB=8A=94 non-multicopy =EC=9B=90=EC=9E=90=EC= =84=B1=EC=9D=B4 =EB=A7=8C=EC=97=B0=ED=95=98=EA=B2=8C =ED=95=A9=EB=8B=88=EB= =8B=A4: =EC=9D=B4 =EC=98=88=EC=97=90=EC=84=9C, CPU 2 =EC=9D=98 X -=EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C=EA=B0=80 1=EC=9D= =84 =EB=A6=AC=ED=84=B4=ED=95=98=EA=B3=A0, CPU 3 =EC=9D=98 Y =EB=A1=9C=EB=B6= =80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C=EA=B0=80 1 =EC=9D=84 =EB=A6=AC=ED= =84=B4=ED=95=98=EB=8A=94=EB=8D=B0, CPU 3 -=EC=9D=98 X =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C=EA=B0= =80 0 =EC=9D=84 =EB=A6=AC=ED=84=B4=ED=95=98=EB=8A=94=EA=B2=8C =EC=99=84=EC= =A0=84=ED=9E=88 =ED=95=A9=EB=B2=95=EC=A0=81=EC=9E=85=EB=8B=88=EB=8B=A4. - -=ED=95=B5=EC=8B=AC=EC=9D=80, CPU 2 =EC=9D=98 =EB=8D=B0=EC=9D=B4=ED=84=B0 = =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=B4 =EC=9E=90=EC=8B=A0=EC=9D=98 =EB=A1=9C= =EB=93=9C=EC=99=80 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC =EC=88=9C=EC=84=9C= =EC=A7=93=EC=A7=80=EB=A7=8C, CPU 1 =EC=9D=98 -=EC=8A=A4=ED=86=A0=EC=96=B4=EC=97=90 =EB=8C=80=ED=95=9C =EC=88=9C=EC=84=9C= =EB=8A=94 =EB=B3=B4=EC=9E=A5=ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94=EB=8B=A4= =EB=8A=94 =EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4. =EB=94=B0=EB=9D=BC=EC=84= =9C, =EC=9D=B4 =EC=98=88=EC=A0=9C=EA=B0=80 CPU 1 =EA=B3=BC -CPU 2 =EA=B0=80 =EC=8A=A4=ED=86=A0=EC=96=B4 =EB=B2=84=ED=8D=BC=EB=82=98 = =ED=95=9C =EC=88=98=EC=A4=80=EC=9D=98 =EC=BA=90=EC=8B=9C=EB=A5=BC =EA=B3=B5= =EC=9C=A0=ED=95=98=EB=8A=94, multicopy =EC=9B=90=EC=9E=90=EC=84=B1=EC=9D=84= =EC=A0=9C=EA=B3=B5=ED=95=98=EC=A7=80 -=EC=95=8A=EB=8A=94 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84=9C =EC=88=98= =ED=96=89=EB=90=9C=EB=8B=A4=EB=A9=B4 CPU 2 =EB=8A=94 CPU 1 =EC=9D=98 =EC=93= =B0=EA=B8=B0=EC=97=90 =EC=9D=B4=EB=A5=B8 =EC=A0=91=EA=B7=BC=EC=9D=84 =ED=95= =A0 =EC=88=98=EB=8F=84 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=94=B0=EB=9D=BC=EC=84=9C, =EB=AA= =A8=EB=93=A0 CPU =EB=93=A4=EC=9D=B4 =EC=97=AC=EB=9F=AC =EC=A0=91=EA=B7=BC= =EB=93=A4=EC=9D=98 =EC=A1=B0=ED=95=A9=EB=90=9C =EC=88=9C=EC=84=9C=EC=97=90 = =EB=8C=80=ED=95=B4=EC=84=9C =EB=8F=99=EC=9D=98=ED=95=98=EA=B2=8C -=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4=EC=84=9C=EB=8A=94 =EB=B2=94=EC=9A=A9= =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =ED=95=84=EC=9A=94=ED=95=A9=EB=8B=88= =EB=8B=A4. - -=EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 non-multicopy =EC= =9B=90=EC=9E=90=EC=84=B1=EB=A7=8C =EB=B3=B4=EC=83=81=ED=95=A0 =EC=88=98 =EC= =9E=88=EB=8A=94=EA=B2=8C =EC=95=84=EB=8B=88=EB=9D=BC, -=EB=AA=A8=EB=93=A0- = CPU =EB=93=A4=EC=9D=B4 --=EB=AA=A8=EB=93=A0- =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93= =A4=EC=9D=98 =EC=88=9C=EC=84=9C=EB=A5=BC =EB=8F=99=EC=9D=BC=ED=95=98=EA=B2= =8C =EC=9D=B8=EC=8B=9D=ED=95=98=EA=B2=8C =ED=95=98=EB=8A=94 =EC=B6=94=EA=B0= =80=EC=A0=81=EC=9D=B8 =EC=88=9C=EC=84=9C =EB=B3=B4=EC=9E=A5=EC=9D=84 -=EB=A7=8C=EB=93=A4=EC=96=B4=EB=83=85=EB=8B=88=EB=8B=A4. =EB=B0=98=EB=8C= =80=EB=A1=9C, release-acquire =EC=A7=9D=EC=9D=98 =EC=97=B0=EA=B2=B0=EC=9D= =80 =EC=9D=B4=EB=9F=B0 =EC=B6=94=EA=B0=80=EC=A0=81=EC=9D=B8 =EC=88=9C=EC=84= =9C=EB=8A=94 -=EC=A0=9C=EA=B3=B5=ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94=EB=8D=B0, =ED=95= =B4=EB=8B=B9 =EC=97=B0=EA=B2=B0=EC=97=90 =EB=93=A4=EC=96=B4=EC=9E=88=EB=8A= =94 CPU =EB=93=A4=EB=A7=8C=EC=9D=B4 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=A0=91= =EA=B7=BC=EC=9D=98 =EC=A1=B0=ED=95=A9=EB=90=9C =EC=88=9C=EC=84=9C=EC=97=90 -=EB=8C=80=ED=95=B4 =EB=8F=99=EC=9D=98=ED=95=A0 =EA=B2=83=EC=9C=BC=EB=A1=9C= =EB=B3=B4=EC=9E=A5=EB=90=A8=EC=9D=84 =EC=9D=98=EB=AF=B8=ED=95=A9=EB=8B=88= =EB=8B=A4. =EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, =EC=A1=B4=EA=B2=BD=EC=8A= =A4=EB=9F=B0 Herman Hollerith -=EC=9D=98 =EC=BD=94=EB=93=9C=EB=A5=BC C =EC=BD=94=EB=93=9C=EB=A1=9C =EB=B3= =80=ED=99=98=ED=95=98=EB=A9=B4: - - int u, v, x, y, z; - - void cpu0(void) - { - r0 =3D smp_load_acquire(&x); - WRITE_ONCE(u, 1); - smp_store_release(&y, 1); - } - - void cpu1(void) - { - r1 =3D smp_load_acquire(&y); - r4 =3D READ_ONCE(v); - r5 =3D READ_ONCE(u); - smp_store_release(&z, 1); - } - - void cpu2(void) - { - r2 =3D smp_load_acquire(&z); - smp_store_release(&x, 1); - } - - void cpu3(void) - { - WRITE_ONCE(v, 1); - smp_mb(); - r3 =3D READ_ONCE(u); - } - -cpu0(), cpu1(), =EA=B7=B8=EB=A6=AC=EA=B3=A0 cpu2() =EB=8A=94 smp_store_rel= ease()/smp_load_acquire() =EC=8C=8D=EC=9D=98 -=EC=97=B0=EA=B2=B0=EC=97=90 =EC=B0=B8=EC=97=AC=EB=90=98=EC=96=B4 =EC=9E=88= =EC=9C=BC=EB=AF=80=EB=A1=9C, =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80= =EA=B2=B0=EA=B3=BC=EB=8A=94 =EB=82=98=EC=98=A4=EC=A7=80 =EC=95=8A=EC=9D=84= =EA=B2=81=EB=8B=88=EB=8B=A4: - - r0 =3D=3D 1 && r1 =3D=3D 1 && r2 =3D=3D 1 - -=EB=8D=94 =EB=82=98=EC=95=84=EA=B0=80=EC=84=9C, cpu0() =EC=99=80 cpu1() = =EC=82=AC=EC=9D=B4=EC=9D=98 release-acquire =EA=B4=80=EA=B3=84=EB=A1=9C =EC= =9D=B8=ED=95=B4, cpu1() =EC=9D=80 -cpu0() =EC=9D=98 =EC=93=B0=EA=B8=B0=EB=A5=BC =EB=B4=90=EC=95=BC=EB=A7=8C = =ED=95=98=EB=AF=80=EB=A1=9C, =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80= =EA=B2=B0=EA=B3=BC=EB=8F=84 =EC=97=86=EC=9D=84 =EA=B2=81=EB=8B=88=EB=8B=A4: - - r1 =3D=3D 1 && r5 =3D=3D 0 - -=ED=95=98=EC=A7=80=EB=A7=8C, release-acquire =EC=97=90 =EC=9D=98=ED=95=B4 = =EC=A0=9C=EA=B3=B5=EB=90=98=EB=8A=94 =EC=88=9C=EC=84=9C=EB=8A=94 =ED=95=B4= =EB=8B=B9 =EC=97=B0=EA=B2=B0=EC=97=90 =EB=8F=99=EC=B0=B8=ED=95=9C CPU =EB= =93=A4=EC=97=90=EB=A7=8C -=EC=A0=81=EC=9A=A9=EB=90=98=EB=AF=80=EB=A1=9C cpu3() =EC=97=90, =EC=A0=81= =EC=96=B4=EB=8F=84 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=93=A4 =EC=99=B8=EC=97=90= =EB=8A=94 =EC=A0=81=EC=9A=A9=EB=90=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88= =EB=8B=A4. =EB=94=B0=EB=9D=BC=EC=84=9C, =EB=8B=A4=EC=9D=8C=EA=B3=BC -=EA=B0=99=EC=9D=80 =EA=B2=B0=EA=B3=BC=EA=B0=80 =EA=B0=80=EB=8A=A5=ED=95=A9= =EB=8B=88=EB=8B=A4: - - r0 =3D=3D 0 && r1 =3D=3D 1 && r2 =3D=3D 1 && r3 =3D=3D 0 && r4 =3D=3D 0 - -=EB=B9=84=EC=8A=B7=ED=95=98=EA=B2=8C, =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0= =99=EC=9D=80 =EA=B2=B0=EA=B3=BC=EB=8F=84 =EA=B0=80=EB=8A=A5=ED=95=A9=EB=8B= =88=EB=8B=A4: - - r0 =3D=3D 0 && r1 =3D=3D 1 && r2 =3D=3D 1 && r3 =3D=3D 0 && r4 =3D=3D 0 &= & r5 =3D=3D 1 - -cpu0(), cpu1(), =EA=B7=B8=EB=A6=AC=EA=B3=A0 cpu2() =EB=8A=94 =EA=B7=B8=EB= =93=A4=EC=9D=98 =EC=9D=BD=EA=B8=B0=EC=99=80 =EC=93=B0=EA=B8=B0=EB=A5=BC =EC= =88=9C=EC=84=9C=EB=8C=80=EB=A1=9C =EB=B3=B4=EA=B2=8C =EB=90=98=EC=A7=80=EB= =A7=8C, -release-acquire =EC=B2=B4=EC=9D=B8=EC=97=90 =EA=B4=80=EC=97=AC=EB=90=98=EC= =A7=80 =EC=95=8A=EC=9D=80 CPU =EB=93=A4=EC=9D=80 =EA=B7=B8 =EC=88=9C=EC=84= =9C=EC=97=90 =EC=9D=B4=EA=B2=AC=EC=9D=84 =EA=B0=80=EC=A7=88 =EC=88=98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EB=9F=B0 =EC=9D=B4=EA=B2= =AC=EC=9D=80 smp_load_acquire() =EC=99=80 smp_store_release() =EC=9D=98 =EA= =B5=AC=ED=98=84=EC=97=90 -=EC=82=AC=EC=9A=A9=EB=90=98=EB=8A=94 =EC=99=84=ED=99=94=EB=90=9C =EB=A9=94= =EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=9D=B8=EC=8A=A4=ED=8A=B8= =EB=9F=AD=EC=85=98=EB=93=A4=EC=9D=80 =ED=95=AD=EC=83=81 =EB=B0=B0=EB=A6=AC= =EC=96=B4 =EC=95=9E=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=93=A4=EC=9D=84 = =EB=92=A4=EC=9D=98 -=EB=A1=9C=EB=93=9C=EB=93=A4=EC=97=90 =EC=95=9E=EC=84=B8=EC=9A=B8 =ED=95=84= =EC=9A=94=EB=8A=94 =EC=97=86=EB=8B=A4=EB=8A=94 =EC=82=AC=EC=8B=A4=EC=97=90= =EC=84=9C =EA=B8=B0=EC=9D=B8=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EB=A7= =90=EC=9D=80 cpu3() =EB=8A=94 cpu0() =EC=9D=98 -u =EB=A1=9C=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC cpu1() =EC=9D=98= v =EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C =EB=92=A4=EC=97= =90 =EC=9D=BC=EC=96=B4=EB=82=9C =EA=B2=83=EC=9C=BC=EB=A1=9C =EB=B3=BC =EC= =88=98 =EC=9E=88=EB=8B=A4=EB=8A=94 -=EB=9C=BB=EC=9E=85=EB=8B=88=EB=8B=A4, cpu0() =EC=99=80 cpu1() =EC=9D=80 = =EC=9D=B4 =EB=91=90 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 = =EC=9D=98=EB=8F=84=EB=90=9C =EC=88=9C=EC=84=9C=EB=8C=80=EB=A1=9C =EC=9D=BC= =EC=96=B4=EB=82=AC=EC=9D=8C=EC=97=90 -=EB=AA=A8=EB=91=90 =EB=8F=99=EC=9D=98=ED=95=98=EB=8A=94=EB=8D=B0=EB=8F=84 = =EB=A7=90=EC=9E=85=EB=8B=88=EB=8B=A4. - -=ED=95=98=EC=A7=80=EB=A7=8C, smp_load_acquire() =EB=8A=94 =EB=A7=88=EC=88= =A0=EC=9D=B4 =EC=95=84=EB=8B=98=EC=9D=84 =EB=AA=85=EC=8B=AC=ED=95=98=EC=8B= =9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. =EA=B5=AC=EC=B2=B4=EC= =A0=81=EC=9C=BC=EB=A1=9C, -=EC=9D=B4 =ED=95=A8=EC=88=98=EB=8A=94 =EB=8B=A8=EC=88=9C=ED=9E=88 =EC=88= =9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=84 =EC=A7=80=ED=82=A4=EB=A9=B0 =EC=9D= =B8=EC=9E=90=EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EC=9D=BD=EA=B8=B0=EB=A5= =BC =EC=88=98=ED=96=89=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4=EA=B2=83=EC= =9D=80 -=EC=96=B4=EB=96=A4 =ED=8A=B9=EC=A0=95=ED=95=9C =EA=B0=92=EC=9D=B4 =EC=9D= =BD=ED=9E=90 =EA=B2=83=EC=9D=B8=EC=A7=80=EB=8A=94 =EB=B3=B4=EC=9E=A5=ED=95= =98=EC=A7=80 -=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4-. =EB=94=B0=EB=9D=BC=EC= =84=9C, =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EA=B2=B0=EA=B3=BC= =EB=8F=84 -=EA=B0=80=EB=8A=A5=ED=95=A9=EB=8B=88=EB=8B=A4: - - r0 =3D=3D 0 && r1 =3D=3D 0 && r2 =3D=3D 0 && r5 =3D=3D 0 - -=EC=9D=B4=EB=9F=B0 =EA=B2=B0=EA=B3=BC=EB=8A=94 =EC=96=B4=EB=96=A4 =EA=B2= =83=EB=8F=84 =EC=9E=AC=EB=B0=B0=EC=B9=98 =EB=90=98=EC=A7=80 =EC=95=8A=EB=8A= =94, =EC=88=9C=EC=B0=A8=EC=A0=81 =EC=9D=BC=EA=B4=80=EC=84=B1=EC=9D=84 =EA= =B0=80=EC=A7=84 =EA=B0=80=EC=83=81=EC=9D=98 -=EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84=9C=EB=8F=84 =EC=9D=BC=EC=96=B4= =EB=82=A0 =EC=88=98 =EC=9E=88=EC=9D=8C=EC=9D=84 =EA=B8=B0=EC=96=B5=ED=95=B4= =EB=91=90=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. - -=EB=8B=A4=EC=8B=9C =EB=A7=90=ED=95=98=EC=A7=80=EB=A7=8C, =EB=8B=B9=EC=8B= =A0=EC=9D=98 =EC=BD=94=EB=93=9C=EA=B0=80 =EB=AA=A8=EB=93=A0 =EC=98=A4=ED=8D= =BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=98 =EC=99=84=EC=A0=84=ED=95= =9C =EC=88=9C=EC=84=9C=EB=A5=BC =ED=95=84=EC=9A=94=EB=A1=9C =ED=95=9C=EB=8B= =A4=EB=A9=B4, -=EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=82=AC=EC=9A=A9= =ED=95=98=EC=8B=AD=EC=8B=9C=EC=98=A4. - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -=EB=AA=85=EC=8B=9C=EC=A0=81 =EC=BB=A4=EB=84=90 =EB=B0=B0=EB=A6=AC=EC=96=B4 -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=9D=80 =EC=84=9C=EB=A1=9C= =EB=8B=A4=EB=A5=B8 =EB=8B=A8=EA=B3=84=EC=97=90=EC=84=9C =EB=8F=99=EC=9E=91= =ED=95=98=EB=8A=94 =EB=8B=A4=EC=96=91=ED=95=9C =EB=B0=B0=EB=A6=AC=EC=96=B4= =EB=93=A4=EC=9D=84 =EA=B0=80=EC=A7=80=EA=B3=A0 =EC=9E=88=EC=8A=B5=EB=8B=88= =EB=8B=A4: - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4. - - (*) CPU =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4. - - -=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 ---------------- - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=9D=80 =EC=BB=B4=ED=8C=8C= =EC=9D=BC=EB=9F=AC=EA=B0=80 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8= =EC=8A=A4=EB=A5=BC =EC=9E=AC=EB=B0=B0=EC=B9=98 =ED=95=98=EB=8A=94 =EA=B2=83= =EC=9D=84 =EB=A7=89=EC=95=84=EC=A3=BC=EB=8A=94 =EB=AA=85=EC=8B=9C=EC=A0=81= =EC=9D=B8 -=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC = =EA=B0=80=EC=A7=80=EA=B3=A0 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - barrier(); - -=EC=9D=B4=EA=B1=B4 =EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9E=85= =EB=8B=88=EB=8B=A4 -- barrier() =EC=9D=98 =EC=9D=BD=EA=B8=B0-=EC=9D=BD=EA= =B8=B0 =EB=82=98 =EC=93=B0=EA=B8=B0-=EC=93=B0=EA=B8=B0 =EB=B3=80=EC=A2=85= =EC=9D=80 =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4. -=ED=95=98=EC=A7=80=EB=A7=8C, READ_ONCE() =EC=99=80 WRITE_ONCE() =EB=8A=94 = =ED=8A=B9=EC=A0=95 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=97=90 =EB=8C=80= =ED=95=B4=EC=84=9C=EB=A7=8C =EB=8F=99=EC=9E=91=ED=95=98=EB=8A=94 -barrier() =EC=9D=98 =EC=99=84=ED=99=94=EB=90=9C =ED=98=95=ED=83=9C=EB=A1= =9C =EB=B3=BC =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -barrier() =ED=95=A8=EC=88=98=EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0= =99=EC=9D=80 =ED=9A=A8=EA=B3=BC=EB=A5=BC =EA=B0=96=EC=8A=B5=EB=8B=88=EB=8B= =A4: - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 barrier() =EB=92=A4=EC= =9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=B4 barrier() =EC=95=9E=EC= =9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=B3=B4=EB=8B=A4 =EC=95=9E=EC=9C=BC=EB= =A1=9C - =EC=9E=AC=EB=B0=B0=EC=B9=98=EB=90=98=EC=A7=80 =EB=AA=BB=ED=95=98=EA= =B2=8C =ED=95=A9=EB=8B=88=EB=8B=A4. =EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4,= =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =ED=95=B8=EB=93=A4=EB=9F=AC =EC=BD=94= =EB=93=9C=EC=99=80 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =EB=8B=B9=ED=95=9C - =EC=BD=94=EB=93=9C =EC=82=AC=EC=9D=B4=EC=9D=98 =ED=86=B5=EC=8B=A0=EC= =9D=84 =EC=8B=A0=EC=A4=91=ED=9E=88 =ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4 = =EC=82=AC=EC=9A=A9=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - (*) =EB=A3=A8=ED=94=84=EC=97=90=EC=84=9C, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EA=B0=80 =EB=A3=A8=ED=94=84 =EC=A1=B0=EA=B1=B4=EC=97=90 =EC=82=AC=EC= =9A=A9=EB=90=9C =EB=B3=80=EC=88=98=EB=A5=BC =EB=A7=A4 =EC=9D=B4=ED=84=B0=EB= =A0=88=EC=9D=B4=EC=85=98=EB=A7=88=EB=8B=A4 - =EB=A9=94=EB=AA=A8=EB=A6=AC=EC=97=90=EC=84=9C =EB=A1=9C=EB=93=9C=ED= =95=98=EC=A7=80 =EC=95=8A=EC=95=84=EB=8F=84 =EB=90=98=EB=8F=84=EB=A1=9D =EC= =B5=9C=EC=A0=81=ED=99=94 =ED=95=98=EB=8A=94=EA=B1=B8 =EB=B0=A9=EC=A7=80=ED= =95=A9=EB=8B=88=EB=8B=A4. - -READ_ONCE() =EC=99=80 WRITE_ONCE() =ED=95=A8=EC=88=98=EB=8A=94 =EC=8B=B1= =EA=B8=80 =EC=93=B0=EB=A0=88=EB=93=9C =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C= =EB=8A=94 =EB=AC=B8=EC=A0=9C =EC=97=86=EC=A7=80=EB=A7=8C =EB=8F=99=EC=8B=9C= =EC=84=B1=EC=9D=B4 -=EC=9E=88=EB=8A=94 =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB=8A=94 =EB=AC=B8= =EC=A0=9C=EA=B0=80 =EB=90=A0 =EC=88=98 =EC=9E=88=EB=8A=94 =EB=AA=A8=EB=93= =A0 =EC=B5=9C=EC=A0=81=ED=99=94=EB=A5=BC =EB=A7=89=EC=8A=B5=EB=8B=88=EB=8B= =A4. =EC=9D=B4=EB=9F=B0 =EB=A5=98=EC=9D=98 =EC=B5=9C=EC=A0=81=ED=99=94=EC= =97=90 -=EB=8C=80=ED=95=9C =EC=98=88=EB=A5=BC =EB=AA=87=EA=B0=80=EC=A7=80 =EB=93= =A4=EC=96=B4=EB=B3=B4=EB=A9=B4 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=8A= =B5=EB=8B=88=EB=8B=A4: - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EA=B0=99=EC=9D=80 =EB= =B3=80=EC=88=98=EC=97=90 =EB=8C=80=ED=95=9C =EB=A1=9C=EB=93=9C=EC=99=80 =EC= =8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC =EC=9E=AC=EB=B0=B0=EC=B9=98 =ED=95=A0 =EC= =88=98 =EC=9E=88=EA=B3=A0, =EC=96=B4=EB=96=A4 - =EA=B2=BD=EC=9A=B0=EC=97=90=EB=8A=94 CPU=EA=B0=80 =EA=B0=99=EC=9D=80 = =EB=B3=80=EC=88=98=EB=A1=9C=EB=B6=80=ED=84=B0=EC=9D=98 =EB=A1=9C=EB=93=9C= =EB=93=A4=EC=9D=84 =EC=9E=AC=EB=B0=B0=EC=B9=98=ED=95=A0 =EC=88=98=EB=8F=84 = =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EB=8A=94 - =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=BD=94=EB=93=9C=EA=B0=80: - - a[0] =3D x; - a[1] =3D x; - - x =EC=9D=98 =EC=98=88=EC=A0=84 =EA=B0=92=EC=9D=B4 a[1] =EC=97=90, =EC= =83=88 =EA=B0=92=EC=9D=B4 a[0] =EC=97=90 =EC=9E=88=EA=B2=8C =ED=95=A0 =EC= =88=98 =EC=9E=88=EB=8B=A4=EB=8A=94 =EB=9C=BB=EC=9E=85=EB=8B=88=EB=8B=A4. - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=99=80 CPU=EA=B0=80 =EC=9D=B4= =EB=9F=B0 =EC=9D=BC=EC=9D=84 =EB=AA=BB=ED=95=98=EA=B2=8C =ED=95=98=EB=A0=A4= =EB=A9=B4 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =ED=95=B4=EC=95=BC= =ED=95=A9=EB=8B=88=EB=8B=A4: - - a[0] =3D READ_ONCE(x); - a[1] =3D READ_ONCE(x); - - =EC=A6=89, READ_ONCE() =EC=99=80 WRITE_ONCE() =EB=8A=94 =EC=97=AC=EB= =9F=AC CPU =EC=97=90=EC=84=9C =ED=95=98=EB=82=98=EC=9D=98 =EB=B3=80=EC=88= =98=EC=97=90 =EA=B0=80=ED=95=B4=EC=A7=80=EB=8A=94 - =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=97=90 =EC=BA=90=EC=8B=9C =EC= =9D=BC=EA=B4=80=EC=84=B1=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=A9=EB=8B=88=EB= =8B=A4. - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EA=B0=99=EC=9D=80 =EB= =B3=80=EC=88=98=EC=97=90 =EB=8C=80=ED=95=9C =EC=97=B0=EC=86=8D=EC=A0=81=EC= =9D=B8 =EB=A1=9C=EB=93=9C=EB=93=A4=EC=9D=84 =EB=B3=91=ED=95=A9=ED=95=A0 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EA=B7=B8=EB=9F=B0 - =EB=B3=91=ED=95=A9 =EC=9E=91=EC=97=85=EC=9C=BC=EB=A1=9C =EC=BB=B4=ED= =8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=BD=94=EB= =93=9C=EB=A5=BC: - - while (tmp =3D a) - do_something_with(tmp); - - =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4, =EC=8B=B1=EA=B8=80 = =EC=93=B0=EB=A0=88=EB=93=9C =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB=8A=94 = =EB=A7=90=EC=9D=B4 =EB=90=98=EC=A7=80=EB=A7=8C =EA=B0=9C=EB=B0=9C=EC=9E=90= =EC=9D=98 =EC=9D=98=EB=8F=84=EC=99=80 =EC=A0=84=ED=98=80 =EB=A7=9E=EC=A7=80 - =EC=95=8A=EB=8A=94 =EB=B0=A9=ED=96=A5=EC=9C=BC=EB=A1=9C "=EC=B5=9C=EC= =A0=81=ED=99=94" =ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - if (tmp =3D a) - for (;;) - do_something_with(tmp); - - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 =EC=9D=B4=EB=9F=B0 =EC= =A7=93=EC=9D=84 =ED=95=98=EC=A7=80 =EB=AA=BB=ED=95=98=EA=B2=8C =ED=95=98=EB= =A0=A4=EB=A9=B4 READ_ONCE() =EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=98=EC=84=B8= =EC=9A=94: - - while (tmp =3D READ_ONCE(a)) - do_something_with(tmp); - - (*) =EC=98=88=EC=BB=A8=EB=8C=80 =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0 =EC= =82=AC=EC=9A=A9=EB=9F=89=EC=9D=B4 =EB=A7=8E=EC=95=84 =EC=BB=B4=ED=8C=8C=EC= =9D=BC=EB=9F=AC=EA=B0=80 =EB=AA=A8=EB=93=A0 =EB=8D=B0=EC=9D=B4=ED=84=B0=EB= =A5=BC =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0=EC=97=90 =EB=8B=B4=EC=9D=84 =EC= =88=98 - =EC=97=86=EB=8A=94 =EA=B2=BD=EC=9A=B0, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EB=8A=94 =EB=B3=80=EC=88=98=EB=A5=BC =EB=8B=A4=EC=8B=9C =EB=A1=9C=EB= =93=9C=ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=94=B0= =EB=9D=BC=EC=84=9C =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 - =EC=95=9E=EC=9D=98 =EC=98=88=EC=97=90=EC=84=9C =EB=B3=80=EC=88=98 'tm= p' =EC=82=AC=EC=9A=A9=EC=9D=84 =EC=B5=9C=EC=A0=81=ED=99=94=EB=A1=9C =EC=97= =86=EC=95=A0=EB=B2=84=EB=A6=B4 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B= =A4: - - while (tmp =3D a) - do_something_with(tmp); - - =EC=9D=B4 =EC=BD=94=EB=93=9C=EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA= =B0=99=EC=9D=B4 =EC=8B=B1=EA=B8=80 =EC=93=B0=EB=A0=88=EB=93=9C=EC=97=90=EC= =84=9C=EB=8A=94 =EC=99=84=EB=B2=BD=ED=95=98=EC=A7=80=EB=A7=8C =EB=8F=99=EC= =8B=9C=EC=84=B1=EC=9D=B4 =EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94 - =EA=B2=BD=EC=9A=B0=EC=97=94 =EC=B9=98=EB=AA=85=EC=A0=81=EC=9D=B8 =EC= =BD=94=EB=93=9C=EB=A1=9C =EB=B0=94=EB=80=94 =EC=88=98 =EC=9E=88=EC=8A=B5=EB= =8B=88=EB=8B=A4: - - while (a) - do_something_with(a); - - =EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, =EC=B5=9C=EC=A0=81=ED=99=94=EB= =90=9C =EC=9D=B4 =EC=BD=94=EB=93=9C=EB=8A=94 =EB=B3=80=EC=88=98 a =EA=B0=80= =EB=8B=A4=EB=A5=B8 CPU =EC=97=90 =EC=9D=98=ED=95=B4 "while" =EB=AC=B8=EA= =B3=BC - do_something_with() =ED=98=B8=EC=B6=9C =EC=82=AC=EC=9D=B4=EC=97=90 = =EB=B0=94=EB=80=8C=EC=96=B4 do_something_with() =EC=97=90 0=EC=9D=84 =EB=84= =98=EA=B8=B8 - =EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - =EC=9D=B4=EB=B2=88=EC=97=90=EB=8F=84, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EA=B0=80 =EA=B7=B8=EB=9F=B0 =EC=A7=93=EC=9D=84 =ED=95=98=EB=8A=94=EA= =B1=B8 =EB=A7=89=EA=B8=B0 =EC=9C=84=ED=95=B4 READ_ONCE() =EB=A5=BC =EC=82= =AC=EC=9A=A9=ED=95=98=EC=84=B8=EC=9A=94: - - while (tmp =3D READ_ONCE(a)) - do_something_with(tmp); - - =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0=EA=B0=80 =EB=B6=80=EC=A1=B1=ED= =95=9C =EC=83=81=ED=99=A9=EC=9D=84 =EA=B2=AA=EB=8A=94 =EA=B2=BD=EC=9A=B0, = =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 tmp =EB=A5=BC =EC=8A=A4=ED=83= =9D=EC=97=90 =EC=A0=80=EC=9E=A5=ED=95=B4=EB=91=98 =EC=88=98=EB=8F=84 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EA=B0=80 =EB=B3=80=EC=88=98=EB=A5=BC =EB=8B=A4=EC=8B=9C =EC=9D=BD=EC= =96=B4=EB=93=A4=EC=9D=B4=EB=8A=94=EA=B1=B4 =EC=9D=B4=EB=A0=87=EA=B2=8C =EC= =A0=80=EC=9E=A5=ED=95=B4=EB=91=90=EA=B3=A0 =ED=9B=84=EC=97=90 =EB=8B=A4=EC= =8B=9C - =EC=9D=BD=EC=96=B4=EB=93=A4=EC=9D=B4=EB=8A=94=EB=8D=B0 =EB=93=9C=EB= =8A=94 =EC=98=A4=EB=B2=84=ED=97=A4=EB=93=9C =EB=95=8C=EB=AC=B8=EC=9E=85=EB= =8B=88=EB=8B=A4. =EA=B7=B8=EB=A0=87=EA=B2=8C =ED=95=98=EB=8A=94=EA=B2=8C = =EC=8B=B1=EA=B8=80 =EC=93=B0=EB=A0=88=EB=93=9C - =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB=8A=94 =EC=95=88=EC=A0=84=ED= =95=98=EB=AF=80=EB=A1=9C, =EC=95=88=EC=A0=84=ED=95=98=EC=A7=80 =EC=95=8A=EC= =9D=80 =EA=B2=BD=EC=9A=B0=EC=97=90=EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EC=97=90=EA=B2=8C =EC=A7=81=EC=A0=91 =EC=95=8C=EB=A0=A4=EC=A4=98=EC= =95=BC - =ED=95=A9=EB=8B=88=EB=8B=A4. - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EA=B7=B8 =EA=B0=92=EC= =9D=B4 =EB=AC=B4=EC=97=87=EC=9D=BC=EC=A7=80 =EC=95=8C=EA=B3=A0 =EC=9E=88=EB= =8B=A4=EB=A9=B4 =EB=A1=9C=EB=93=9C=EB=A5=BC =EC=95=84=EC=98=88 =EC=95=88=ED= =95=A0 =EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - =EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, =EB=8B=A4=EC=9D=8C=EC=9D=98 = =EC=BD=94=EB=93=9C=EB=8A=94 =EB=B3=80=EC=88=98 'a' =EC=9D=98 =EA=B0=92=EC= =9D=B4 =ED=95=AD=EC=83=81 0=EC=9E=84=EC=9D=84 =EC=A6=9D=EB=AA=85=ED=95=A0 = =EC=88=98 =EC=9E=88=EB=8B=A4=EB=A9=B4: - - while (tmp =3D a) - do_something_with(tmp); - - =EC=9D=B4=EB=A0=87=EA=B2=8C =EC=B5=9C=EC=A0=81=ED=99=94 =EB=90=98=EC= =96=B4=EB=B2=84=EB=A6=B4 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - do { } while (0); - - =EC=9D=B4 =EB=B3=80=ED=99=98=EC=9D=80 =EC=8B=B1=EA=B8=80 =EC=93=B0=EB= =A0=88=EB=93=9C =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB=8A=94 =EB=8F=84=EC= =9B=80=EC=9D=B4 =EB=90=98=EB=8A=94=EB=8D=B0 =EB=A1=9C=EB=93=9C=EC=99=80 =EB= =B8=8C=EB=9E=9C=EC=B9=98=EB=A5=BC =EC=A0=9C=EA=B1=B0=ED=96=88=EA=B8=B0 - =EB=95=8C=EB=AC=B8=EC=9E=85=EB=8B=88=EB=8B=A4. =EB=AC=B8=EC=A0=9C=EB= =8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 'a' =EC=9D=98 =EA=B0= =92=EC=9D=84 =EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8 =ED=95=98=EB=8A=94=EA=B1= =B4 =ED=98=84=EC=9E=AC=EC=9D=98 CPU =ED=95=98=EB=82=98 - =EB=BF=90=EC=9D=B4=EB=9D=BC=EB=8A=94 =EA=B0=80=EC=A0=95 =EC=9C=84=EC= =97=90=EC=84=9C =EC=A6=9D=EB=AA=85=EC=9D=84 =ED=96=88=EB=8B=A4=EB=8A=94=EB= =8D=B0 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=A7=8C=EC=95=BD =EB=B3=80= =EC=88=98 'a' =EA=B0=80 =EA=B3=B5=EC=9C=A0=EB=90=98=EC=96=B4 - =EC=9E=88=EB=8B=A4=EB=A9=B4, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC= =9D=98 =EC=A6=9D=EB=AA=85=EC=9D=80 =ED=8B=80=EB=A6=B0 =EA=B2=83=EC=9D=B4 = =EB=90=A0=EA=B2=81=EB=8B=88=EB=8B=A4. =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC= =EB=8A=94 =EA=B7=B8 =EC=9E=90=EC=8B=A0=EC=9D=B4 - =EC=83=9D=EA=B0=81=ED=95=98=EB=8A=94 =EA=B2=83=EB=A7=8C=ED=81=BC =EB= =A7=8E=EC=9D=80 =EA=B2=83=EC=9D=84 =EC=95=8C=EA=B3=A0 =EC=9E=88=EC=A7=80 = =EB=AA=BB=ED=95=A8=EC=9D=84 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=97=90= =EA=B2=8C =EC=95=8C=EB=A6=AC=EA=B8=B0 =EC=9C=84=ED=95=B4 - READ_ONCE() =EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=98=EC=84=B8=EC=9A=94: - - while (tmp =3D READ_ONCE(a)) - do_something_with(tmp); - - =ED=95=98=EC=A7=80=EB=A7=8C =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB= =8A=94 READ_ONCE() =EB=92=A4=EC=97=90 =EB=82=98=EC=98=A4=EB=8A=94 =EA=B0=92= =EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB=8F=84 =EB=88=88=EA=B8=B8=EC=9D=84 = =EB=91=90=EA=B3=A0 =EC=9E=88=EC=9D=8C=EC=9D=84 - =EA=B8=B0=EC=96=B5=ED=95=98=EC=84=B8=EC=9A=94. =EC=98=88=EB=A5=BC = =EB=93=A4=EC=96=B4, =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=BD=94=EB=93=9C=EC=97=90= =EC=84=9C MAX =EB=8A=94 =EC=A0=84=EC=B2=98=EB=A6=AC=EA=B8=B0 =EB=A7=A4=ED= =81=AC=EB=A1=9C=EB=A1=9C, 1=EC=9D=98 =EA=B0=92=EC=9D=84 - =EA=B0=96=EB=8A=94=EB=8B=A4=EA=B3=A0 =ED=95=B4=EB=B4=85=EC=8B=9C=EB= =8B=A4: - - while ((tmp =3D READ_ONCE(a)) % MAX) - do_something_with(tmp); - - =EC=9D=B4=EB=A0=87=EA=B2=8C =EB=90=98=EB=A9=B4 =EC=BB=B4=ED=8C=8C=EC= =9D=BC=EB=9F=AC=EB=8A=94 MAX =EB=A5=BC =EA=B0=80=EC=A7=80=EA=B3=A0 =EC=88= =98=ED=96=89=EB=90=98=EB=8A=94 "%" =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=ED= =84=B0=EC=9D=98 =EA=B2=B0=EA=B3=BC=EA=B0=80 =ED=95=AD=EC=83=81 - 0=EC=9D=B4=EB=9D=BC=EB=8A=94 =EA=B2=83=EC=9D=84 =EC=95=8C=EA=B2=8C = =EB=90=98=EA=B3=A0, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 =EC=BD=94= =EB=93=9C=EB=A5=BC =EC=8B=A4=EC=A7=88=EC=A0=81=EC=9C=BC=EB=A1=9C=EB=8A=94 = =EC=A1=B4=EC=9E=AC=ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94 - =EA=B2=83=EC=B2=98=EB=9F=BC =EC=B5=9C=EC=A0=81=ED=99=94 =ED=95=98=EB= =8A=94 =EA=B2=83=EC=9D=B4 =ED=97=88=EC=9A=A9=EB=90=98=EC=96=B4 =EB=B2=84=EB= =A6=BD=EB=8B=88=EB=8B=A4. ('a' =EB=B3=80=EC=88=98=EC=9D=98 =EB=A1=9C=EB=93= =9C=EB=8A=94 =EC=97=AC=EC=A0=84=ED=9E=88 - =ED=96=89=ED=95=B4=EC=A7=88 =EA=B2=81=EB=8B=88=EB=8B=A4.) - - (*) =EB=B9=84=EC=8A=B7=ED=95=98=EA=B2=8C, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EB=8A=94 =EB=B3=80=EC=88=98=EA=B0=80 =EC=A0=80=EC=9E=A5=ED=95=98=EB= =A0=A4 =ED=95=98=EB=8A=94 =EA=B0=92=EC=9D=84 =EC=9D=B4=EB=AF=B8 =EA=B0=80= =EC=A7=80=EA=B3=A0 =EC=9E=88=EB=8B=A4=EB=8A=94 =EA=B2=83=EC=9D=84 - =EC=95=8C=EB=A9=B4 =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=9E=90=EC=B2=B4=EB= =A5=BC =EC=A0=9C=EA=B1=B0=ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4. =EC=9D=B4=EB=B2=88=EC=97=90=EB=8F=84, =EC=BB=B4=ED=8C=8C=EC=9D=BC= =EB=9F=AC=EB=8A=94 =ED=98=84=EC=9E=AC=EC=9D=98 CPU - =EB=A7=8C=EC=9D=B4 =EA=B7=B8 =EB=B3=80=EC=88=98=EC=97=90 =EA=B0=92=EC= =9D=84 =EC=93=B0=EB=8A=94 =EC=98=A4=EB=A1=9C=EC=A7=80 =ED=95=98=EB=82=98=EC= =9D=98 =EC=A1=B4=EC=9E=AC=EB=9D=BC=EA=B3=A0 =EC=83=9D=EA=B0=81=ED=95=98=EC= =97=AC =EA=B3=B5=EC=9C=A0=EB=90=9C =EB=B3=80=EC=88=98=EC=97=90 - =EB=8C=80=ED=95=B4=EC=84=9C=EB=8A=94 =EC=9E=98=EB=AA=BB=EB=90=9C =EC= =9D=BC=EC=9D=84 =ED=95=98=EA=B2=8C =EB=90=A9=EB=8B=88=EB=8B=A4. =EC=98=88= =EB=A5=BC =EB=93=A4=EC=96=B4, =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D= =80 =EA=B2=BD=EC=9A=B0=EA=B0=80 =EC=9E=88=EC=9D=84 =EC=88=98 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - a =3D 0; - ... =EB=B3=80=EC=88=98 a =EC=97=90 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC = =ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94 =EC=BD=94=EB=93=9C ... - a =3D 0; - - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EB=B3=80=EC=88=98 'a' = =EC=9D=98 =EA=B0=92=EC=9D=80 =EC=9D=B4=EB=AF=B8 0=EC=9D=B4=EB=9D=BC=EB=8A= =94 =EA=B2=83=EC=9D=84 =EC=95=8C=EA=B3=A0, =EB=94=B0=EB=9D=BC=EC=84=9C =EB= =91=90=EB=B2=88=EC=A7=B8 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC - =EC=82=AD=EC=A0=9C=ED=95=A0 =EA=B2=81=EB=8B=88=EB=8B=A4. =EB=A7=8C= =EC=95=BD =EB=8B=A4=EB=A5=B8 CPU =EA=B0=80 =EA=B7=B8 =EC=82=AC=EC=9D=B4 =EB= =B3=80=EC=88=98 'a' =EC=97=90 =EB=8B=A4=EB=A5=B8 =EA=B0=92=EC=9D=84 =EC=8D= =BC=EB=8B=A4=EB=A9=B4 - =ED=99=A9=EB=8B=B9=ED=95=9C =EA=B2=B0=EA=B3=BC=EA=B0=80 =EB=82=98=EC= =98=AC =EA=B2=81=EB=8B=88=EB=8B=A4. - - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 =EA=B7=B8=EB=9F=B0 =EC= =9E=98=EB=AA=BB=EB=90=9C =EC=B6=94=EC=B8=A1=EC=9D=84 =ED=95=98=EC=A7=80 =EC= =95=8A=EB=8F=84=EB=A1=9D WRITE_ONCE() =EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=98= =EC=84=B8=EC=9A=94: - - WRITE_ONCE(a, 0); - ... =EB=B3=80=EC=88=98 a =EC=97=90 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC = =ED=95=98=EC=A7=80 =EC=95=8A=EB=8A=94 =EC=BD=94=EB=93=9C ... - WRITE_ONCE(a, 0); - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =ED=95=98=EC=A7=80 =EB= =A7=90=EB=9D=BC=EA=B3=A0 =ED=95=98=EC=A7=80 =EC=95=8A=EC=9C=BC=EB=A9=B4 =EB= =A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=84 =EC= =9E=AC=EB=B0=B0=EC=B9=98 =ED=95=A0 =EC=88=98 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=98=88=EB=A5=BC =EB=93=A4= =EC=96=B4, =EB=8B=A4=EC=9D=8C=EC=9D=98 =ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4= =EB=A0=88=EB=B2=A8 =EC=BD=94=EB=93=9C=EC=99=80 =EC=9D=B8=ED=84=B0=EB=9F=BD= =ED=8A=B8 =ED=95=B8=EB=93=A4=EB=9F=AC =EC=82=AC=EC=9D=B4=EC=9D=98 - =EC=83=81=ED=98=B8=EC=9E=91=EC=9A=A9=EC=9D=84 =EC=83=9D=EA=B0=81=ED= =95=B4 =EB=B4=85=EC=8B=9C=EB=8B=A4: - - void process_level(void) - { - msg =3D get_message(); - flag =3D true; - } - - void interrupt_handler(void) - { - if (flag) - process_message(msg); - } - - =EC=9D=B4 =EC=BD=94=EB=93=9C=EC=97=90=EB=8A=94 =EC=BB=B4=ED=8C=8C=EC= =9D=BC=EB=9F=AC=EA=B0=80 process_level() =EC=9D=84 =EB=8B=A4=EC=9D=8C=EA=B3= =BC =EA=B0=99=EC=9D=B4 =EB=B3=80=ED=99=98=ED=95=98=EB=8A=94 =EA=B2=83=EC=9D= =84 =EB=A7=89=EC=9D=84 - =EC=88=98=EB=8B=A8=EC=9D=B4 =EC=97=86=EA=B3=A0, =EC=9D=B4=EB=9F=B0 = =EB=B3=80=ED=99=98=EC=9D=80 =EC=8B=B1=EA=B8=80=EC=93=B0=EB=A0=88=EB=93=9C= =EC=97=90=EC=84=9C=EB=9D=BC=EB=A9=B4 =EC=8B=A4=EC=A0=9C=EB=A1=9C =ED=9B=8C= =EB=A5=AD=ED=95=9C =EC=84=A0=ED=83=9D=EC=9D=BC =EC=88=98 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - void process_level(void) - { - flag =3D true; - msg =3D get_message(); - } - - =EC=9D=B4 =EB=91=90=EA=B0=9C=EC=9D=98 =EB=AC=B8=EC=9E=A5 =EC=82=AC=EC= =9D=B4=EC=97=90 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8=EA=B0=80 =EB=B0=9C=EC= =83=9D=ED=95=9C=EB=8B=A4=EB=A9=B4, interrupt_handler() =EB=8A=94 =EC=9D=98= =EB=AF=B8=EB=A5=BC - =EC=95=8C =EC=88=98 =EC=97=86=EB=8A=94 =EB=A9=94=EC=84=B8=EC=A7=80=EB= =A5=BC =EB=B0=9B=EC=9D=84 =EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4. =EC=9D=B4=EA=B1=B8 =EB=A7=89=EA=B8=B0 =EC=9C=84=ED=95=B4 =EB=8B=A4= =EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 - WRITE_ONCE() =EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=98=EC=84=B8=EC=9A=94: - - void process_level(void) - { - WRITE_ONCE(msg, get_message()); - WRITE_ONCE(flag, true); - } - - void interrupt_handler(void) - { - if (READ_ONCE(flag)) - process_message(READ_ONCE(msg)); - } - - interrupt_handler() =EC=95=88=EC=97=90=EC=84=9C=EB=8F=84 =EC=A4=91=EC= =B2=A9=EB=90=9C =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8=EB=82=98 NMI =EC=99=80= =EA=B0=99=EC=9D=B4 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =ED=95=B8=EB=93=A4= =EB=9F=AC - =EC=97=AD=EC=8B=9C 'flag' =EC=99=80 'msg' =EC=97=90 =EC=A0=91=EA=B7= =BC=ED=95=98=EB=8A=94 =EB=98=90=EB=8B=A4=EB=A5=B8 =EB=AC=B4=EC=96=B8=EA=B0= =80=EC=97=90 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =EB=90=A0 =EC=88=98 =EC= =9E=88=EB=8B=A4=EB=A9=B4 - READ_ONCE() =EC=99=80 WRITE_ONCE() =EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95= =B4=EC=95=BC =ED=95=A8=EC=9D=84 =EA=B8=B0=EC=96=B5=ED=95=B4 =EB=91=90=EC=84= =B8=EC=9A=94. =EB=A7=8C=EC=95=BD =EA=B7=B8=EB=9F=B0 - =EA=B0=80=EB=8A=A5=EC=84=B1=EC=9D=B4 =EC=97=86=EB=8B=A4=EB=A9=B4, int= errupt_handler() =EC=95=88=EC=97=90=EC=84=9C=EB=8A=94 =EB=AC=B8=EC=84=9C=ED= =99=94 =EB=AA=A9=EC=A0=81=EC=9D=B4 =EC=95=84=EB=8B=88=EB=9D=BC=EB=A9=B4 - READ_ONCE() =EC=99=80 WRITE_ONCE() =EB=8A=94 =ED=95=84=EC=9A=94=EC=B9= =98 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. (=EA=B7=BC=EB=9E=98=EC=9D=98 =EB= =A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=97=90=EC=84=9C - =EC=A4=91=EC=B2=A9=EB=90=9C =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8=EB= =8A=94 =EB=B3=B4=ED=86=B5 =EC=9E=98 =EC=9D=BC=EC=96=B4=EB=82=98=EC=A7=80 = =EC=95=8A=EC=9D=8C=EB=8F=84 =EA=B8=B0=EC=96=B5=ED=95=B4 =EB=91=90=EC=84=B8= =EC=9A=94, =EC=8B=A4=EC=A0=9C=EB=A1=9C, =EC=96=B4=EB=96=A4 - =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =ED=95=B8=EB=93=A4=EB=9F=AC=EA= =B0=80 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8=EA=B0=80 =ED=99=9C=EC=84=B1=ED= =99=94=EB=90=9C =EC=B1=84=EB=A1=9C =EB=A6=AC=ED=84=B4=ED=95=98=EB=A9=B4 WAR= N_ONCE() =EA=B0=80 - =EC=8B=A4=ED=96=89=EB=90=A9=EB=8B=88=EB=8B=A4.) - - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 READ_ONCE() =EC=99=80 W= RITE_ONCE() =EB=92=A4=EC=9D=98 READ_ONCE() =EB=82=98 WRITE_ONCE(), - barrier(), =EB=98=90=EB=8A=94 =EB=B9=84=EC=8A=B7=ED=95=9C =EA=B2=83= =EB=93=A4=EC=9D=84 =EB=8B=B4=EA=B3=A0 =EC=9E=88=EC=A7=80 =EC=95=8A=EC=9D=80= =EC=BD=94=EB=93=9C=EB=A5=BC =EC=9B=80=EC=A7=81=EC=9D=BC =EC=88=98 =EC=9E= =88=EC=9D=84 =EA=B2=83=EC=9C=BC=EB=A1=9C - =EA=B0=80=EC=A0=95=EB=90=98=EC=96=B4=EC=95=BC =ED=95=A9=EB=8B=88=EB= =8B=A4. - - =EC=9D=B4 =ED=9A=A8=EA=B3=BC=EB=8A=94 barrier() =EB=A5=BC =ED=86=B5= =ED=95=B4=EC=84=9C=EB=8F=84 =EB=A7=8C=EB=93=A4 =EC=88=98 =EC=9E=88=EC=A7=80= =EB=A7=8C, READ_ONCE() =EC=99=80 - WRITE_ONCE() =EA=B0=80 =EC=A2=80 =EB=8D=94 =EC=95=88=EB=AA=A9 =EB=86= =92=EC=9D=80 =EC=84=A0=ED=83=9D=EC=9E=85=EB=8B=88=EB=8B=A4: READ_ONCE() =EC= =99=80 WRITE_ONCE()=EB=8A=94 - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=97=90 =EC=A3=BC=EC=96=B4=EC= =A7=84 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=81=EC=97=AD=EC=97=90 =EB=8C=80=ED= =95=B4=EC=84=9C=EB=A7=8C =EC=B5=9C=EC=A0=81=ED=99=94 =EA=B0=80=EB=8A=A5=EC= =84=B1=EC=9D=84 =ED=8F=AC=EA=B8=B0=ED=95=98=EB=8F=84=EB=A1=9D - =ED=95=98=EC=A7=80=EB=A7=8C, barrier() =EB=8A=94 =EC=BB=B4=ED=8C=8C= =EC=9D=BC=EB=9F=AC=EA=B0=80 =EC=A7=80=EA=B8=88=EA=B9=8C=EC=A7=80 =EA=B8=B0= =EA=B3=84=EC=9D=98 =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0=EC=97=90 =EC=BA=90= =EC=8B=9C=ED=95=B4 =EB=86=93=EC=9D=80 - =EB=AA=A8=EB=93=A0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=81=EC=97=AD=EC= =9D=98 =EA=B0=92=EC=9D=84 =EB=B2=84=EB=A0=A4=EC=95=BC =ED=95=98=EA=B2=8C = =ED=95=98=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=9E=85=EB=8B=88=EB=8B=A4. =EB=AC= =BC=EB=A1=A0, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 - READ_ONCE() =EC=99=80 WRITE_ONCE() =EA=B0=80 =EC=9D=BC=EC=96=B4=EB=82= =9C =EC=88=9C=EC=84=9C=EB=8F=84 =EC=A7=80=EC=BC=9C=EC=A4=8D=EB=8B=88=EB=8B= =A4, CPU =EB=8A=94 =EB=8B=B9=EC=97=B0=ED=9E=88 - =EA=B7=B8 =EC=88=9C=EC=84=9C=EB=A5=BC =EC=A7=80=ED=82=AC =EC=9D=98=EB= =AC=B4=EA=B0=80 =EC=97=86=EC=A7=80=EB=A7=8C=EC=9A=94. - - (*) =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EB=8B=A4=EC=9D=8C=EC= =9D=98 =EC=98=88=EC=97=90=EC=84=9C=EC=99=80 =EA=B0=99=EC=9D=B4 =EB=B3=80=EC= =88=98=EC=97=90=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC =EB=82=A0=EC= =A1=B0=ED=95=B4=EB=82=BC =EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4: - - if (a) - b =3D a; - else - b =3D 42; - - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EC=95=84=EB=9E=98=EC= =99=80 =EA=B0=99=EC=9D=80 =EC=B5=9C=EC=A0=81=ED=99=94=EB=A1=9C =EB=B8=8C=EB= =9E=9C=EC=B9=98=EB=A5=BC =EC=A4=84=EC=9D=BC =EA=B2=81=EB=8B=88=EB=8B=A4: - - b =3D 42; - if (a) - b =3D a; - - =EC=8B=B1=EA=B8=80 =EC=93=B0=EB=A0=88=EB=93=9C =EC=BD=94=EB=93=9C=EC= =97=90=EC=84=9C =EC=9D=B4 =EC=B5=9C=EC=A0=81=ED=99=94=EB=8A=94 =EC=95=88=EC= =A0=84=ED=95=A0 =EB=BF=90 =EC=95=84=EB=8B=88=EB=9D=BC =EB=B8=8C=EB=9E=9C=EC= =B9=98 =EA=B0=AF=EC=88=98=EB=A5=BC - =EC=A4=84=EC=97=AC=EC=A4=8D=EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7=80=EB= =A7=8C =EC=95=88=ED=83=80=EA=B9=9D=EA=B2=8C=EB=8F=84, =EB=8F=99=EC=8B=9C=EC= =84=B1=EC=9D=B4 =EC=9E=88=EB=8A=94 =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB= =8A=94 =EC=9D=B4 =EC=B5=9C=EC=A0=81=ED=99=94=EB=8A=94 =EB=8B=A4=EB=A5=B8 - CPU =EA=B0=80 'b' =EB=A5=BC =EB=A1=9C=EB=93=9C=ED=95=A0 =EB=95=8C, --= 'a' =EA=B0=80 0=EC=9D=B4 =EC=95=84=EB=8B=8C=EB=8D=B0=EB=8F=84 -- =EA=B0=80= =EC=A7=9C=EC=9D=B8 =EA=B0=92, 42=EB=A5=BC =EB=B3=B4=EA=B2=8C - =EB=90=98=EB=8A=94 =EA=B2=BD=EC=9A=B0=EB=A5=BC =EA=B0=80=EB=8A=A5=ED= =95=98=EA=B2=8C =ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4=EA=B1=B8 =EB=B0=A9= =EC=A7=80=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4 WRITE_ONCE() =EB=A5=BC - =EC=82=AC=EC=9A=A9=ED=95=98=EC=84=B8=EC=9A=94: - - if (a) - WRITE_ONCE(b, a); - else - WRITE_ONCE(b, 42); - - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EB=A1=9C=EB=93=9C=EB= =A5=BC =EB=A7=8C=EB=93=A4=EC=96=B4=EB=82=BC =EC=88=98=EB=8F=84 =EC=9E=88=EC= =8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C=EB= =8A=94 =EB=AC=B8=EC=A0=9C=EB=A5=BC =EC=9D=BC=EC=9C=BC=ED=82=A4=EC=A7=80 - =EC=95=8A=EC=A7=80=EB=A7=8C, =EC=BA=90=EC=8B=9C =EB=9D=BC=EC=9D=B8 = =EB=B0=94=EC=9A=B4=EC=8B=B1=EC=9D=84 =EC=9D=BC=EC=9C=BC=EC=BC=9C =EC=84=B1= =EB=8A=A5=EA=B3=BC =ED=99=95=EC=9E=A5=EC=84=B1=EC=9D=84 =EB=96=A8=EC=96=B4= =EB=9C=A8=EB=A6=B4 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - =EB=82=A0=EC=A1=B0=EB=90=9C =EB=A1=9C=EB=93=9C=EB=A5=BC =EB=A7=89=EA= =B8=B0 =EC=9C=84=ED=95=B4=EC=84=A0 READ_ONCE() =EB=A5=BC =EC=82=AC=EC=9A=A9= =ED=95=98=EC=84=B8=EC=9A=94. - - (*) =EC=A0=95=EB=A0=AC=EB=90=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=A3=BC=EC= =86=8C=EC=97=90 =EC=9C=84=EC=B9=98=ED=95=9C, =ED=95=9C=EB=B2=88=EC=9D=98 = =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=B0=B8=EC=A1=B0 =EC=9D=B8=EC=8A=A4=ED=8A=B8= =EB=9F=AD=EC=85=98=EC=9C=BC=EB=A1=9C =EC=95=A1=EC=84=B8=EC=8A=A4 - =EA=B0=80=EB=8A=A5=ED=95=9C =ED=81=AC=EA=B8=B0=EC=9D=98 =EB=8D=B0=EC= =9D=B4=ED=84=B0=EB=8A=94 =ED=95=98=EB=82=98=EC=9D=98 =ED=81=B0 =EC=95=A1=EC= =84=B8=EC=8A=A4=EA=B0=80 =EC=97=AC=EB=9F=AC=EA=B0=9C=EC=9D=98 =EC=9E=91=EC= =9D=80 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EB=A1=9C - =EB=8C=80=EC=B2=B4=EB=90=98=EB=8A=94 "=EB=A1=9C=EB=93=9C =ED=8B=B0=EC= =96=B4=EB=A7=81(load tearing)" =EA=B3=BC "=EC=8A=A4=ED=86=A0=EC=96=B4 =ED= =8B=B0=EC=96=B4=EB=A7=81(store tearing)" =EC=9D=84 - =EB=B0=A9=EC=A7=80=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=98=88=EB=A5=BC = =EB=93=A4=EC=96=B4, =EC=A3=BC=EC=96=B4=EC=A7=84 =EC=95=84=ED=82=A4=ED=85=8D= =EC=B3=90=EA=B0=80 7-bit imeediate field =EB=A5=BC =EA=B0=96=EB=8A=94 - 16-bit =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F= =AD=EC=85=98=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=9C=EB=8B=A4=EB=A9=B4, =EC=BB= =B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EB=8B=A4=EC=9D=8C=EC=9D=98 32-bit = =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC - =EA=B5=AC=ED=98=84=ED=95=98=EB=8A=94=EB=8D=B0=EC=97=90 =EB=91=90=EA= =B0=9C=EC=9D=98 16-bit store-immediate =EB=AA=85=EB=A0=B9=EC=9D=84 =EC=82= =AC=EC=9A=A9=ED=95=98=EB=A0=A4 =ED=95=A0=EA=B2=81=EB=8B=88=EB=8B=A4: - - p =3D 0x00010002; - - =EC=8A=A4=ED=86=A0=EC=96=B4 =ED=95=A0 =EC=83=81=EC=88=98=EB=A5=BC =EB= =A7=8C=EB=93=A4=EA=B3=A0 =EA=B7=B8 =EA=B0=92=EC=9D=84 =EC=8A=A4=ED=86=A0=EC= =96=B4 =ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4 =EB=91=90=EA=B0=9C=EA=B0=80 = =EB=84=98=EB=8A=94 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=84 - =EC=82=AC=EC=9A=A9=ED=95=98=EA=B2=8C =EB=90=98=EB=8A=94, =EC=9D=B4=EB= =9F=B0 =EC=A2=85=EB=A5=98=EC=9D=98 =EC=B5=9C=EC=A0=81=ED=99=94=EB=A5=BC GCC= =EB=8A=94 =EC=8B=A4=EC=A0=9C=EB=A1=9C =ED=95=A8=EC=9D=84 =EB=B6=80=EB=94= =94 =EC=95=8C=EC=95=84 =EB=91=90=EC=8B=AD=EC=8B=9C=EC=98=A4. - =EC=9D=B4 =EC=B5=9C=EC=A0=81=ED=99=94=EB=8A=94 =EC=8B=B1=EA=B8=80 =EC= =93=B0=EB=A0=88=EB=93=9C =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB=8A=94 =EC= =84=B1=EA=B3=B5=EC=A0=81=EC=9D=B8 =EC=B5=9C=EC=A0=81=ED=99=94 =EC=9E=85=EB= =8B=88=EB=8B=A4. =EC=8B=A4=EC=A0=9C=EB=A1=9C, =EA=B7=BC=EB=9E=98=EC=97=90 - =EB=B0=9C=EC=83=9D=ED=95=9C (=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EA=B3=A0=EC= =B3=90=EC=A7=84) =EB=B2=84=EA=B7=B8=EB=8A=94 GCC =EA=B0=80 volatile =EC=8A= =A4=ED=86=A0=EC=96=B4=EC=97=90 =EB=B9=84=EC=A0=95=EC=83=81=EC=A0=81=EC=9C= =BC=EB=A1=9C =EC=9D=B4 - =EC=B5=9C=EC=A0=81=ED=99=94=EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=98=EA= =B2=8C =ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EA=B7=B8=EB=9F=B0 =EB=B2=84= =EA=B7=B8=EA=B0=80 =EC=97=86=EB=8B=A4=EB=A9=B4, =EB=8B=A4=EC=9D=8C=EC=9D=98= =EC=98=88=EC=97=90=EC=84=9C - WRITE_ONCE() =EC=9D=98 =EC=82=AC=EC=9A=A9=EC=9D=80 =EC=8A=A4=ED=86=A0= =EC=96=B4 =ED=8B=B0=EC=96=B4=EB=A7=81=EC=9D=84 =EB=B0=A9=EC=A7=80=ED=95=A9= =EB=8B=88=EB=8B=A4: - - WRITE_ONCE(p, 0x00010002); - - Packed =EA=B5=AC=EC=A1=B0=EC=B2=B4=EC=9D=98 =EC=82=AC=EC=9A=A9 =EC=97= =AD=EC=8B=9C =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=98=88=EC=B2=98=EB=9F=BC =EB= =A1=9C=EB=93=9C / =EC=8A=A4=ED=86=A0=EC=96=B4 =ED=8B=B0=EC=96=B4=EB=A7=81= =EC=9D=84 =EC=9C=A0=EB=B0=9C=ED=95=A0 =EC=88=98 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - struct __attribute__((__packed__)) foo { - short a; - int b; - short c; - }; - struct foo foo1, foo2; - ... - - foo2.a =3D foo1.a; - foo2.b =3D foo1.b; - foo2.c =3D foo1.c; - - READ_ONCE() =EB=82=98 WRITE_ONCE() =EB=8F=84 =EC=97=86=EA=B3=A0 volat= ile =EB=A7=88=ED=82=B9=EB=8F=84 =EC=97=86=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97= =90, - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EB=8A=94 =EC=9D=B4 =EC=84=B8=EA= =B0=9C=EC=9D=98 =EB=8C=80=EC=9E=85=EB=AC=B8=EC=9D=84 =EB=91=90=EA=B0=9C=EC= =9D=98 32-bit =EB=A1=9C=EB=93=9C=EC=99=80 =EB=91=90=EA=B0=9C=EC=9D=98 32-bi= t =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A1=9C - =EB=B3=80=ED=99=98=ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4. =EC=9D=B4=EB=8A=94 'foo1.b' =EC=9D=98 =EA=B0=92=EC=9D=98 =EB=A1=9C= =EB=93=9C =ED=8B=B0=EC=96=B4=EB=A7=81=EA=B3=BC 'foo2.b' =EC=9D=98 - =EC=8A=A4=ED=86=A0=EC=96=B4 =ED=8B=B0=EC=96=B4=EB=A7=81=EC=9D=84 =EC= =B4=88=EB=9E=98=ED=95=A0 =EA=B2=81=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EC=98=88= =EC=97=90=EC=84=9C=EB=8F=84 READ_ONCE() =EC=99=80 WRITE_ONCE() - =EA=B0=80 =ED=8B=B0=EC=96=B4=EB=A7=81=EC=9D=84 =EB=A7=89=EC=9D=84 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - foo2.a =3D foo1.a; - WRITE_ONCE(foo2.b, READ_ONCE(foo1.b)); - foo2.c =3D foo1.c; - -=EA=B7=B8=EB=A0=87=EC=A7=80=EB=A7=8C, volatile =EB=A1=9C =EB=A7=88=ED=81= =AC=EB=90=9C =EB=B3=80=EC=88=98=EC=97=90 =EB=8C=80=ED=95=B4=EC=84=9C=EB=8A= =94 READ_ONCE() =EC=99=80 WRITE_ONCE() =EA=B0=80 -=ED=95=84=EC=9A=94=EC=B9=98 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=98= =88=EB=A5=BC =EB=93=A4=EC=96=B4, 'jiffies' =EB=8A=94 volatile =EB=A1=9C =EB= =A7=88=ED=81=AC=EB=90=98=EC=96=B4 =EC=9E=88=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC= =97=90, -READ_ONCE(jiffies) =EB=9D=BC=EA=B3=A0 =ED=95=A0 =ED=95=84=EC=9A=94=EA=B0= =80 =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4. READ_ONCE() =EC=99=80 WRITE_ONCE= () =EA=B0=80 -=EC=8B=A4=EC=9D=80 volatile =EC=BA=90=EC=8A=A4=ED=8C=85=EC=9C=BC=EB=A1=9C = =EA=B5=AC=ED=98=84=EB=90=98=EC=96=B4 =EC=9E=88=EC=96=B4=EC=84=9C =EC=9D=B8= =EC=9E=90=EA=B0=80 =EC=9D=B4=EB=AF=B8 volatile =EB=A1=9C =EB=A7=88=ED=81=AC= =EB=90=98=EC=96=B4 -=EC=9E=88=EB=8B=A4=EB=A9=B4 =EB=98=90=EB=8B=A4=EB=A5=B8 =ED=9A=A8=EA=B3=BC= =EB=A5=BC =EB=82=B4=EC=A7=80=EB=8A=94 =EC=95=8A=EA=B8=B0 =EB=95=8C=EB=AC=B8= =EC=9E=85=EB=8B=88=EB=8B=A4. - -=EC=9D=B4 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4= =EB=93=A4=EC=9D=80 CPU =EC=97=90=EB=8A=94 =EC=A7=81=EC=A0=91=EC=A0=81 =ED= =9A=A8=EA=B3=BC=EB=A5=BC =EC=A0=84=ED=98=80 =EB=A7=8C=EB=93=A4=EC=A7=80 =EC= =95=8A=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90, =EA=B2=B0=EA=B5=AD=EC=9D=80 -=EC=9E=AC=EB=B0=B0=EC=B9=98=EA=B0=80 =EC=9D=BC=EC=96=B4=EB=82=A0 =EC=88=98= =EB=8F=84 =EC=9E=88=EC=9D=8C=EC=9D=84 =EB=B6=80=EB=94=94 =EA=B8=B0=EC=96=B5= =ED=95=B4 =EB=91=90=EC=8B=AD=EC=8B=9C=EC=98=A4. - - -CPU =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 ------------------ - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=9D=80 =EB=8B=A4=EC=9D=8C= =EC=9D=98 =EC=9D=BC=EA=B3=B1=EA=B0=9C =EA=B8=B0=EB=B3=B8 CPU =EB=A9=94=EB= =AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EA=B0=80=EC=A7=80=EA= =B3=A0 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - TYPE MANDATORY SMP CONDITIONAL - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D - =EB=B2=94=EC=9A=A9 mb() smp_mb() - =EC=93=B0=EA=B8=B0 wmb() smp_wmb() - =EC=9D=BD=EA=B8=B0 rmb() smp_rmb() - =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 READ_ONCE() - - -=EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4= =EB=A5=BC =EC=A0=9C=EC=99=B8=ED=95=9C =EB=AA=A8=EB=93=A0 =EB=A9=94=EB=AA=A8= =EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC= =EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =ED=8F=AC=ED=95=A8=ED=95=A9= =EB=8B=88=EB=8B=A4. -=EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D=80 =EC=BB=B4=ED=8C=8C= =EC=9D=BC=EB=9F=AC=EC=97=90=EC=9D=98 =EC=B6=94=EA=B0=80=EC=A0=81=EC=9D=B8 = =EC=88=9C=EC=84=9C =EB=B3=B4=EC=9E=A5=EC=9D=84 =ED=8F=AC=ED=95=A8=ED=95=98= =EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EB=B0=A9=EB=B0=B1: =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1=EC=9D= =B4 =EC=9E=88=EB=8A=94 =EA=B2=BD=EC=9A=B0, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EB=8A=94 =ED=95=B4=EB=8B=B9 =EB=A1=9C=EB=93=9C=EB=A5=BC =EC=98=AC=EB= =B0=94=EB=A5=B8 =EC=88=9C=EC=84=9C=EB=A1=9C =EC=9D=BC=EC=9C=BC=ED=82=AC -=EA=B2=83=EC=9C=BC=EB=A1=9C (=EC=98=88: `a[b]` =EB=8A=94 a[b] =EB=A5=BC = =EB=A1=9C=EB=93=9C =ED=95=98=EA=B8=B0 =EC=A0=84=EC=97=90 b =EC=9D=98 =EA=B0= =92=EC=9D=84 =EB=A8=BC=EC=A0=80 =EB=A1=9C=EB=93=9C=ED=95=9C=EB=8B=A4) -=EA=B8=B0=EB=8C=80=EB=90=98=EC=A7=80=EB=A7=8C, C =EC=96=B8=EC=96=B4 =EC=82= =AC=EC=96=91=EC=97=90=EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0= =80 b =EC=9D=98 =EA=B0=92=EC=9D=84 =EC=B6=94=EC=B8=A1 (=EC=98=88: 1 =EA=B3= =BC =EA=B0=99=EC=9D=8C) =ED=95=B4=EC=84=9C -b =EB=A1=9C=EB=93=9C =EC=A0=84=EC=97=90 a =EB=A1=9C=EB=93=9C=EB=A5=BC =ED= =95=98=EB=8A=94 =EC=BD=94=EB=93=9C (=EC=98=88: tmp =3D a[1]; if (b !=3D 1) = tmp =3D a[b]; ) =EB=A5=BC -=EB=A7=8C=EB=93=A4=EC=A7=80 =EC=95=8A=EC=95=84=EC=95=BC =ED=95=9C=EB=8B=A4= =EB=8A=94 =EB=82=B4=EC=9A=A9 =EA=B0=99=EC=9D=80 =EA=B1=B4 =EC=97=86=EC=8A= =B5=EB=8B=88=EB=8B=A4. =EB=98=90=ED=95=9C =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EB=8A=94 a[b] =EB=A5=BC =EB=A1=9C=EB=93=9C=ED=95=9C -=ED=9B=84=EC=97=90 b =EB=A5=BC =EB=98=90=EB=8B=A4=EC=8B=9C =EB=A1=9C=EB=93= =9C=ED=95=A0 =EC=88=98=EB=8F=84 =EC=9E=88=EC=96=B4=EC=84=9C, a[b] =EB=B3=B4= =EB=8B=A4 =EC=B5=9C=EC=8B=A0 =EB=B2=84=EC=A0=84=EC=9D=98 b =EA=B0=92=EC=9D= =84 =EA=B0=80=EC=A7=88 =EC=88=98=EB=8F=84 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EB=9F=B0 =EB=AC=B8=EC=A0= =9C=EB=93=A4=EC=9D=98 =ED=95=B4=EA=B2=B0=EC=B1=85=EC=97=90 =EB=8C=80=ED=95= =9C =EC=9D=98=EA=B2=AC =EC=9D=BC=EC=B9=98=EB=8A=94 =EC=95=84=EC=A7=81 =EC= =97=86=EC=8A=B5=EB=8B=88=EB=8B=A4=EB=A7=8C, =EC=9D=BC=EB=8B=A8 -READ_ONCE() =EB=A7=A4=ED=81=AC=EB=A1=9C=EB=B6=80=ED=84=B0 =EB=B3=B4=EA=B8= =B0 =EC=8B=9C=EC=9E=91=ED=95=98=EB=8A=94=EA=B2=8C =EC=A2=8B=EC=9D=80 =EC=8B= =9C=EC=9E=91=EC=9D=B4 =EB=90=A0=EA=B2=81=EB=8B=88=EB=8B=A4. - -SMP =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D= =80 =EC=9C=A0=EB=8B=88=ED=94=84=EB=A1=9C=EC=84=B8=EC=84=9C=EB=A1=9C =EC=BB= =B4=ED=8C=8C=EC=9D=BC=EB=90=9C =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84= =9C=EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96= =B4=EB=A1=9C -=EB=B0=94=EB=80=8C=EB=8A=94=EB=8D=B0, =ED=95=98=EB=82=98=EC=9D=98 CPU =EB= =8A=94 =EC=8A=A4=EC=8A=A4=EB=A1=9C =EC=9D=BC=EA=B4=80=EC=84=B1=EC=9D=84 =EC= =9C=A0=EC=A7=80=ED=95=98=EA=B3=A0, =EA=B2=B9=EC=B9=98=EB=8A=94 =EC=95=A1=EC= =84=B8=EC=8A=A4=EB=93=A4 =EC=97=AD=EC=8B=9C =EC=98=AC=EB=B0=94=EB=A5=B8 -=EC=88=9C=EC=84=9C=EB=A1=9C =ED=96=89=ED=95=B4=EC=A7=88 =EA=B2=83=EC=9C=BC= =EB=A1=9C =EC=83=9D=EA=B0=81=EB=90=98=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=9E=85= =EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7=80=EB=A7=8C, =EC=95=84=EB=9E=98=EC=9D= =98 "Virtual Machine -Guests" =EC=84=9C=EB=B8=8C=EC=84=B9=EC=85=98=EC=9D=84 =EC=B0=B8=EA=B3=A0= =ED=95=98=EC=8B=AD=EC=8B=9C=EC=98=A4. - -[!] SMP =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84=9C =EA=B3=B5=EC=9C=A0= =EB=A9=94=EB=AA=A8=EB=A6=AC=EB=A1=9C=EC=9D=98 =EC=A0=91=EA=B7=BC=EB=93=A4= =EC=9D=84 =EC=88=9C=EC=84=9C =EC=84=B8=EC=9B=8C=EC=95=BC =ED=95=A0 =EB=95= =8C, SMP =EB=A9=94=EB=AA=A8=EB=A6=AC -=EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 _=EB=B0=98=EB=93=9C=EC=8B=9C_ =EC=82= =AC=EC=9A=A9=EB=90=98=EC=96=B4=EC=95=BC =ED=95=A8=EC=9D=84 =EA=B8=B0=EC=96= =B5=ED=95=98=EC=84=B8=EC=9A=94, =EA=B7=B8=EB=8C=80=EC=8B=A0 =EB=9D=BD=EC=9D= =84 =EC=82=AC=EC=9A=A9=ED=95=98=EB=8A=94 =EA=B2=83=EC=9C=BC=EB=A1=9C=EB=8F= =84 -=EC=B6=A9=EB=B6=84=ED=95=98=EA=B8=B4 =ED=95=98=EC=A7=80=EB=A7=8C =EB=A7=90= =EC=9D=B4=EC=A3=A0. - -Mandatory =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=80 SMP =EC=8B=9C=EC= =8A=A4=ED=85=9C=EC=97=90=EC=84=9C=EB=8F=84 UP =EC=8B=9C=EC=8A=A4=ED=85=9C= =EC=97=90=EC=84=9C=EB=8F=84 SMP =ED=9A=A8=EA=B3=BC=EB=A7=8C =ED=86=B5=EC=A0= =9C=ED=95=98=EA=B8=B0=EC=97=90=EB=8A=94 -=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C =EC=98=A4=EB=B2=84=ED=97=A4=EB=93=9C= =EB=A5=BC =EA=B0=96=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 SMP =ED=9A=A8=EA= =B3=BC=EB=A7=8C =ED=86=B5=EC=A0=9C=ED=95=98=EB=A9=B4 =EB=90=98=EB=8A=94 =EA= =B3=B3=EC=97=90=EB=8A=94 =EC=82=AC=EC=9A=A9=EB=90=98=EC=A7=80 =EC=95=8A=EC= =95=84=EC=95=BC -=ED=95=A9=EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7=80=EB=A7=8C, =EB=8A=90=EC=8A= =A8=ED=95=9C =EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=98 =EB=A9=94=EB=AA= =A8=EB=A6=AC I/O =EC=9C=88=EB=8F=84=EC=9A=B0=EB=A5=BC =ED=86=B5=ED=95=9C MM= IO =EC=9D=98 =ED=9A=A8=EA=B3=BC=EB=A5=BC -=ED=86=B5=EC=A0=9C=ED=95=A0 =EB=95=8C=EC=97=90=EB=8A=94 mandatory =EB=B0= =B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=B4 =EC=82=AC=EC=9A=A9=EB=90=A0 =EC=88= =98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EB=B0=B0=EB=A6=AC=EC= =96=B4=EB=93=A4=EC=9D=80 -=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=99=80 CPU =EB=AA=A8=EB=91=90 =EC= =9E=AC=EB=B0=B0=EC=B9=98=EB=A5=BC =EB=AA=BB=ED=95=98=EB=8F=84=EB=A1=9D =ED= =95=A8=EC=9C=BC=EB=A1=9C=EC=8D=A8 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED= =8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=B4 =EB=94=94=EB=B0=94=EC= =9D=B4=EC=8A=A4=EC=97=90 -=EB=B3=B4=EC=97=AC=EC=A7=80=EB=8A=94 =EC=88=9C=EC=84=9C=EC=97=90=EB=8F=84 = =EC=98=81=ED=96=A5=EC=9D=84 =EC=A3=BC=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90,= SMP =EA=B0=80 =EC=95=84=EB=8B=8C =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=B4=EB= =9D=BC =ED=95=A0=EC=A7=80=EB=9D=BC=EB=8F=84 =ED=95=84=EC=9A=94=ED=95=A0 =EC= =88=98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EC=9D=BC=EB=B6=80 =EA=B3=A0=EA=B8=89 =EB=B0=B0=EB=A6=AC=EC=96=B4 =ED=95= =A8=EC=88=98=EB=93=A4=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (*) smp_store_mb(var, value) - - =EC=9D=B4 =ED=95=A8=EC=88=98=EB=8A=94 =ED=8A=B9=EC=A0=95 =EB=B3=80=EC= =88=98=EC=97=90 =ED=8A=B9=EC=A0=95 =EA=B0=92=EC=9D=84 =EB=8C=80=EC=9E=85=ED= =95=98=EA=B3=A0 =EB=B2=94=EC=9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB= =A6=AC=EC=96=B4=EB=A5=BC =EC=B9=A9=EB=8B=88=EB=8B=A4. - UP =EC=BB=B4=ED=8C=8C=EC=9D=BC=EC=97=90=EC=84=9C=EB=8A=94 =EC=BB=B4= =ED=8C=8C=EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=B3=B4=EB=8B=A4 = =EB=8D=94=ED=95=9C =EA=B2=83=EC=9D=84 =EC=B9=9C=EB=8B=A4=EA=B3=A0=EB=8A=94 = =EB=B3=B4=EC=9E=A5=EB=90=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - - - (*) smp_mb__before_atomic(); - (*) smp_mb__after_atomic(); - - =EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB= =B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=ED=8F=AC=ED=95=98=EC=A7=80 =EC= =95=8A=EB=8A=94 =EC=96=B4=ED=86=A0=EB=AF=B9 RMW =ED=95=A8=EC=88=98=EB=A5=BC= =EC=82=AC=EC=9A=A9=ED=95=98=EC=A7=80=EB=A7=8C =EC=BD=94=EB=93=9C=EC=97=90 - =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =ED= =95=84=EC=9A=94=ED=95=9C =EA=B2=BD=EC=9A=B0=EB=A5=BC =EC=9C=84=ED=95=9C =EA= =B2=83=EB=93=A4=EC=9E=85=EB=8B=88=EB=8B=A4. =EB=A9=94=EB=AA=A8=EB=A6=AC = =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=ED=8F=AC=ED=95=98=EC=A7=80 - =EC=95=8A=EB=8A=94 =EC=96=B4=ED=86=A0=EB=AF=B9 RMW =ED=95=A8=EC=88=98= =EB=93=A4=EC=9D=98 =EC=98=88=EB=A1=9C=EB=8A=94 =EB=8D=94=ED=95=98=EA=B8=B0,= =EB=B9=BC=EA=B8=B0, (=EC=8B=A4=ED=8C=A8=ED=95=9C) =EC=A1=B0=EA=B1=B4=EC=A0= =81 - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4, _relaxed =ED= =95=A8=EC=88=98=EB=93=A4=EC=9D=B4 =EC=9E=88=EC=9C=BC=EB=A9=B0, atomic_read = =EB=82=98 atomic_set =EC=9D=80 =EC=9D=B4=EC=97=90 - =ED=95=B4=EB=8B=B9=EB=90=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB= =8B=A4. =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 = =ED=95=84=EC=9A=94=ED=95=B4=EC=A7=80=EB=8A=94 =ED=9D=94=ED=95=9C =EC=98=88= =EB=A1=9C=EB=8A=94 =EC=96=B4=ED=86=A0=EB=AF=B9 - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EC=82=AC=EC= =9A=A9=ED=95=B4 =EB=A0=88=ED=8D=BC=EB=9F=B0=EC=8A=A4 =EC=B9=B4=EC=9A=B4=ED= =8A=B8=EB=A5=BC =EC=88=98=EC=A0=95=ED=95=98=EB=8A=94 =EA=B2=BD=EC=9A=B0=EB= =A5=BC =EB=93=A4 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - =EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 =EB=98=90=ED=95=9C (set_bit =EA= =B3=BC clear_bit =EA=B0=99=EC=9D=80) =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0= =EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=ED=8F=AC=ED=95=98=EC=A7=80 =EC=95=8A= =EB=8A=94 - =EC=96=B4=ED=86=A0=EB=AF=B9 RMW bitop =ED=95=A8=EC=88=98=EB=93=A4=EC= =9D=84 =EC=9C=84=ED=95=B4=EC=84=9C=EB=8F=84 =EC=82=AC=EC=9A=A9=EB=90=A0 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - =ED=95=9C =EC=98=88=EB=A1=9C, =EA=B0=9D=EC=B2=B4 =ED=95=98=EB=82=98= =EB=A5=BC =EB=AC=B4=ED=9A=A8=ED=95=9C =EA=B2=83=EC=9C=BC=EB=A1=9C =ED=91=9C= =EC=8B=9C=ED=95=98=EA=B3=A0 =EA=B7=B8 =EA=B0=9D=EC=B2=B4=EC=9D=98 =EB=A0=88= =ED=8D=BC=EB=9F=B0=EC=8A=A4 =EC=B9=B4=EC=9A=B4=ED=8A=B8=EB=A5=BC - =EA=B0=90=EC=86=8C=EC=8B=9C=ED=82=A4=EB=8A=94 =EB=8B=A4=EC=9D=8C =EC= =BD=94=EB=93=9C=EB=A5=BC =EB=B3=B4=EC=84=B8=EC=9A=94: - - obj->dead =3D 1; - smp_mb__before_atomic(); - atomic_dec(&obj->ref_count); - - =EC=9D=B4 =EC=BD=94=EB=93=9C=EB=8A=94 =EA=B0=9D=EC=B2=B4=EC=9D=98 =EC= =97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=EB=90=9C death =EB=A7=88=ED=81=AC=EA=B0= =80 =EB=A0=88=ED=8D=BC=EB=9F=B0=EC=8A=A4 =EC=B9=B4=EC=9A=B4=ED=84=B0 =EA=B0= =90=EC=86=8C =EB=8F=99=EC=9E=91 - *=EC=A0=84=EC=97=90* =EB=B3=B4=EC=9D=BC =EA=B2=83=EC=9D=84 =EB=B3=B4= =EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. - - =EB=8D=94 =EB=A7=8E=EC=9D=80 =EC=A0=95=EB=B3=B4=EB=A5=BC =EC=9C=84=ED= =95=B4=EC=84=A0 Documentation/atomic_{t,bitops}.txt =EB=AC=B8=EC=84=9C=EB= =A5=BC - =EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - - (*) dma_wmb(); - (*) dma_rmb(); - (*) dma_mb(); - - =EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 CPU =EC=99=80 DMA =EA=B0=80=EB= =8A=A5=ED=95=9C =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EC=97=90=EC=84=9C =EB= =AA=A8=EB=91=90 =EC=95=A1=EC=84=B8=EC=8A=A4 =EA=B0=80=EB=8A=A5=ED=95=9C =EA= =B3=B5=EC=9C=A0 =EB=A9=94=EB=AA=A8=EB=A6=AC=EC=9D=98 - =EC=9D=BD=EA=B8=B0, =EC=93=B0=EA=B8=B0 =EC=9E=91=EC=97=85=EB=93=A4=EC= =9D=98 =EC=88=9C=EC=84=9C=EB=A5=BC =EB=B3=B4=EC=9E=A5=ED=95=98=EA=B8=B0 =EC= =9C=84=ED=95=B4 consistent memory =EC=97=90=EC=84=9C =EC=82=AC=EC=9A=A9=ED= =95=98=EA=B8=B0 - =EC=9C=84=ED=95=9C =EA=B2=83=EB=93=A4=EC=9E=85=EB=8B=88=EB=8B=A4. - - =EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, =EB=94=94=EB=B0=94=EC=9D=B4=EC= =8A=A4=EC=99=80 =EB=A9=94=EB=AA=A8=EB=A6=AC=EB=A5=BC =EA=B3=B5=EC=9C=A0=ED= =95=98=EB=A9=B0, =EB=94=94=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=84=B0 =EC=83=81=ED= =83=9C =EA=B0=92=EC=9D=84 =EC=82=AC=EC=9A=A9=ED=95=B4 - =EB=94=94=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=84=B0=EA=B0=80 =EB=94=94=EB= =B0=94=EC=9D=B4=EC=8A=A4=EC=97=90 =EC=86=8D=ED=95=B4 =EC=9E=88=EB=8A=94=EC= =A7=80 =EC=95=84=EB=8B=88=EB=A9=B4 CPU =EC=97=90 =EC=86=8D=ED=95=B4 =EC=9E= =88=EB=8A=94=EC=A7=80 =ED=91=9C=EC=8B=9C=ED=95=98=EA=B3=A0, - =EA=B3=B5=EC=A7=80=EC=9A=A9 =EC=B4=88=EC=9D=B8=EC=A2=85(doorbell) =EC= =9D=84 =EC=82=AC=EC=9A=A9=ED=95=B4 =EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=EB= =90=9C =EB=94=94=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=84=B0=EA=B0=80 =EB=94=94=EB= =B0=94=EC=9D=B4=EC=8A=A4=EC=97=90 =EC=82=AC=EC=9A=A9 - =EA=B0=80=EB=8A=A5=ED=95=B4=EC=A1=8C=EC=9D=8C=EC=9D=84 =EA=B3=B5=EC= =A7=80=ED=95=98=EB=8A=94 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4 =EB=93=9C=EB= =9D=BC=EC=9D=B4=EB=B2=84=EB=A5=BC =EC=83=9D=EA=B0=81=ED=95=B4 =EB=B4=85=EC= =8B=9C=EB=8B=A4: - - if (desc->status !=3D DEVICE_OWN) { - /* =EB=94=94=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=84=B0=EB=A5=BC =EC=86=8C=EC= =9C=A0=ED=95=98=EA=B8=B0 =EC=A0=84=EC=97=90=EB=8A=94 =EB=8D=B0=EC=9D=B4=ED= =84=B0=EB=A5=BC =EC=9D=BD=EC=A7=80 =EC=95=8A=EC=9D=8C */ - dma_rmb(); - - /* =EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC =EC=9D=BD=EA=B3=A0 =EC=94=80 */ - read_data =3D desc->data; - desc->data =3D write_data; - - /* =EC=83=81=ED=83=9C =EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8 =EC=A0=84 =EC= =88=98=EC=A0=95=EC=82=AC=ED=95=AD=EC=9D=84 =EB=B0=98=EC=98=81 */ - dma_wmb(); - - /* =EC=86=8C=EC=9C=A0=EA=B6=8C=EC=9D=84 =EC=88=98=EC=A0=95 */ - desc->status =3D DEVICE_OWN; - - /* =EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=EB=90=9C =EB=94=94=EC=8A=A4=ED= =81=AC=EB=A6=BD=ED=84=B0=EC=9D=98 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EC= =97=90 =EA=B3=B5=EC=A7=80 */ - writel(DESC_NOTIFY, doorbell); - } - - dma_rmb() =EB=8A=94 =EB=94=94=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=84=B0=EB= =A1=9C=EB=B6=80=ED=84=B0 =EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC =EC=9D=BD=EC= =96=B4=EC=98=A4=EA=B8=B0 =EC=A0=84=EC=97=90 =EB=94=94=EB=B0=94=EC=9D=B4=EC= =8A=A4=EA=B0=80 =EC=86=8C=EC=9C=A0=EA=B6=8C=EC=9D=84 - =EB=82=B4=EB=A0=A4=EB=86=93=EC=95=98=EC=9D=84 =EA=B2=83=EC=9D=84 =EB= =B3=B4=EC=9E=A5=ED=95=98=EA=B3=A0, dma_wmb() =EB=8A=94 =EB=94=94=EB=B0=94= =EC=9D=B4=EC=8A=A4=EA=B0=80 =EC=9E=90=EC=8B=A0=EC=9D=B4 =EC=86=8C=EC=9C=A0= =EA=B6=8C=EC=9D=84 =EB=8B=A4=EC=8B=9C - =EA=B0=80=EC=A1=8C=EC=9D=8C=EC=9D=84 =EB=B3=B4=EA=B8=B0 =EC=A0=84=EC= =97=90 =EB=94=94=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=84=B0=EC=97=90 =EB=8D=B0=EC= =9D=B4=ED=84=B0=EA=B0=80 =EC=93=B0=EC=98=80=EC=9D=84 =EA=B2=83=EC=9D=84 =EB= =B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. dma_mb() - =EB=8A=94 dma_rmb() =EC=99=80 dma_wmb() =EB=A5=BC =EB=AA=A8=EB=91=90 = =EB=82=B4=ED=8F=AC=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=B0=B8=EA=B3=A0=EB=A1=9C= , writel() =EC=9D=84 - =EC=82=AC=EC=9A=A9=ED=95=98=EB=A9=B4 =EC=BA=90=EC=8B=9C =EC=9D=BC=EA= =B4=80=EC=84=B1=EC=9D=B4 =EC=9E=88=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC (ca= che coherent memory) =EC=93=B0=EA=B8=B0=EA=B0=80 MMIO - =EC=98=81=EC=97=AD=EC=97=90=EC=9D=98 =EC=93=B0=EA=B8=B0 =EC=A0=84=EC= =97=90 =EC=99=84=EB=A3=8C=EB=90=98=EC=97=88=EC=9D=84 =EA=B2=83=EC=9D=84 =EB= =B3=B4=EC=9E=A5=ED=95=98=EB=AF=80=EB=A1=9C writel() =EC=95=9E=EC=97=90 wmb(= ) =EB=A5=BC - =EC=8B=A4=ED=96=89=ED=95=A0 =ED=95=84=EC=9A=94=EA=B0=80 =EC=97=86=EC= =9D=8C=EC=9D=84 =EC=95=8C=EC=95=84=EB=91=90=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB= =9E=8D=EB=8B=88=EB=8B=A4. writel() =EB=B3=B4=EB=8B=A4 =EB=B9=84=EC=9A=A9= =EC=9D=B4 =EC=A0=80=EB=A0=B4=ED=95=9C - writel_relaxed() =EB=8A=94 =EC=9D=B4=EB=9F=B0 =EB=B3=B4=EC=9E=A5=EC= =9D=84 =EC=A0=9C=EA=B3=B5=ED=95=98=EC=A7=80 =EC=95=8A=EC=9C=BC=EB=AF=80=EB= =A1=9C =EC=97=AC=EA=B8=B0=EC=84=A0 =EC=82=AC=EC=9A=A9=EB=90=98=EC=A7=80 =EC= =95=8A=EC=95=84=EC=95=BC - =ED=95=A9=EB=8B=88=EB=8B=A4. - - writel_relaxed() =EC=99=80 =EA=B0=99=EC=9D=80 =EC=99=84=ED=99=94=EB= =90=9C I/O =EC=A0=91=EA=B7=BC=EC=9E=90=EB=93=A4=EC=97=90 =EB=8C=80=ED=95=9C= =EC=9E=90=EC=84=B8=ED=95=9C =EB=82=B4=EC=9A=A9=EC=9D=84 =EC=9C=84=ED=95=B4= =EC=84=9C=EB=8A=94 - "=EC=BB=A4=EB=84=90 I/O =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 =ED=9A= =A8=EA=B3=BC" =EC=84=B9=EC=85=98=EC=9D=84, consistent memory =EC=97=90 =EB= =8C=80=ED=95=9C =EC=9E=90=EC=84=B8=ED=95=9C =EB=82=B4=EC=9A=A9=EC=9D=84 - =EC=9C=84=ED=95=B4=EC=84=A0 Documentation/core-api/dma-api.rst =EB=AC= =B8=EC=84=9C=EB=A5=BC =EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - (*) pmem_wmb(); - - =EC=9D=B4=EA=B2=83=EC=9D=80 persistent memory =EB=A5=BC =EC=9C=84=ED= =95=9C =EA=B2=83=EC=9C=BC=EB=A1=9C, persistent =EC=A0=80=EC=9E=A5=EC=86=8C= =EC=97=90 =EA=B0=80=ED=95=B4=EC=A7=84 =EB=B3=80=EA=B2=BD - =EC=82=AC=ED=95=AD=EC=9D=B4 =ED=94=8C=EB=9E=AB=ED=8F=BC =EC=97=B0=EC= =86=8D=EC=84=B1 =EB=8F=84=EB=A9=94=EC=9D=B8=EC=97=90 =EB=8F=84=EB=8B=AC=ED= =96=88=EC=9D=84 =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95=98=EA=B8=B0 =EC= =9C=84=ED=95=9C =EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4. - - =EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, =EC=9E=84=EC=8B=9C=EC=A0=81=EC= =9D=B4=EC=A7=80 =EC=95=8A=EC=9D=80 pmem =EC=98=81=EC=97=AD=EC=9C=BC=EB=A1= =9C=EC=9D=98 =EC=93=B0=EA=B8=B0 =ED=9B=84, =EC=9A=B0=EB=A6=AC=EB=8A=94 =EC= =93=B0=EA=B8=B0=EA=B0=80 =ED=94=8C=EB=9E=AB=ED=8F=BC - =EC=97=B0=EC=86=8D=EC=84=B1 =EB=8F=84=EB=A9=94=EC=9D=B8=EC=97=90 =EB= =8F=84=EB=8B=AC=ED=96=88=EC=9D=84 =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED= =95=98=EA=B8=B0 =EC=9C=84=ED=95=B4 pmem_wmb() =EB=A5=BC =EC=82=AC=EC=9A=A9= =ED=95=A9=EB=8B=88=EB=8B=A4. - =EC=9D=B4=EB=8A=94 =EC=93=B0=EA=B8=B0=EA=B0=80 =EB=92=A4=EB=94=B0=EB= =A5=B4=EB=8A=94 instruction =EB=93=A4=EC=9D=B4 =EC=9C=A0=EB=B0=9C=ED=95=98= =EB=8A=94 =EC=96=B4=EB=96=A0=ED=95=9C =EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=95=A1= =EC=84=B8=EC=8A=A4=EB=82=98 - =EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=A0=84=EC=86=A1=EC=9D=98 =EC=8B=9C=EC= =9E=91 =EC=A0=84=EC=97=90 persistent =EC=A0=80=EC=9E=A5=EC=86=8C=EB=A5=BC = =EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8 =ED=96=88=EC=9D=84 =EA=B2=83=EC=9D=84 = =EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. - =EC=9D=B4=EB=8A=94 wmb() =EC=97=90 =EC=9D=98=ED=95=B4 =EC=9D=B4=EB=A4= =84=EC=A7=80=EB=8A=94 =EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=84 =ED=8F= =AC=ED=95=A8=ED=95=A9=EB=8B=88=EB=8B=A4. - - Persistent memory =EC=97=90=EC=84=9C=EC=9D=98 =EB=A1=9C=EB=93=9C=EB= =A5=BC =EC=9C=84=ED=95=B4=EC=84=A0 =ED=98=84=EC=9E=AC=EC=9D=98 =EC=9D=BD=EA= =B8=B0 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A1=9C=EB= =8F=84 =EC=9D=BD=EA=B8=B0 - =EC=88=9C=EC=84=9C=EB=A5=BC =EB=B3=B4=EC=9E=A5=ED=95=98=EB=8A=94=EB= =8D=B0 =EC=B6=A9=EB=B6=84=ED=95=A9=EB=8B=88=EB=8B=A4. - - (*) io_stop_wc(); - - =EC=93=B0=EA=B8=B0=EC=99=80 =EA=B2=B0=ED=95=A9=EB=90=9C =ED=8A=B9=EC= =84=B1=EC=9D=84 =EA=B0=96=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC= =84=B8=EC=8A=A4=EC=9D=98 =EA=B2=BD=EC=9A=B0 (=EC=98=88: ioremap_wc() =EC=97= =90 =EC=9D=98=ED=95=B4 - =EB=A6=AC=ED=84=B4=EB=90=98=EB=8A=94 =EA=B2=83=EB=93=A4), CPU =EB=8A= =94 =EC=95=9E=EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=B4 =EB=92= =A4=EB=94=B0=EB=A5=B4=EB=8A=94 =EA=B2=83=EB=93=A4=EA=B3=BC =EB=B3=91=ED=95= =A9=EB=90=98=EA=B2=8C=EB=81=94 =EA=B8=B0=EB=8B=A4=EB=A6=B4 - =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. io_stop_wc() =EB=8A= =94 =EA=B7=B8=EB=9F=B0 =EA=B8=B0=EB=8B=A4=EB=A6=BC=EC=9D=B4 =EC=84=B1=EB=8A= =A5=EC=97=90 =EC=98=81=ED=96=A5=EC=9D=84 =EB=81=BC=EC=B9=A0 =EC=88=98 =EC= =9E=88=EC=9D=84 =EB=95=8C, - =EC=9D=B4 =EB=A7=A4=ED=81=AC=EB=A1=9C =EC=95=9E=EC=9D=98 =EC=93=B0=EA= =B8=B0-=EA=B2=B0=ED=95=A9=EB=90=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC= =84=B8=EC=8A=A4=EB=93=A4=EC=9D=B4 =EB=A7=A4=ED=81=AC=EB=A1=9C =EB=92=A4=EC= =9D=98 =EA=B2=83=EB=93=A4=EA=B3=BC =EB=B3=91=ED=95=A9=EB=90=98=EB=8A=94 - =EA=B2=83=EC=9D=84 =EB=B0=A9=EC=A7=80=ED=95=98=EA=B8=B0 =EC=9C=84=ED= =95=B4 =EC=82=AC=EC=9A=A9=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4. - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D -=EC=95=94=EB=AC=B5=EC=A0=81 =EC=BB=A4=EB=84=90 =EB=A9=94=EB=AA=A8=EB=A6=AC= =EB=B0=B0=EB=A6=AC=EC=96=B4 -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=9D=98 =EC=9D=BC=EB=B6=80= =ED=95=A8=EC=88=98=EB=93=A4=EC=9D=80 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0= =EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=EC=9E=A5=ED=95=98=EA=B3=A0 =EC=9E=88= =EB=8A=94=EB=8D=B0, =EB=9D=BD(lock)=EA=B3=BC -=EC=8A=A4=EC=BC=80=EC=A5=B4=EB=A7=81 =EA=B4=80=EB=A0=A8 =ED=95=A8=EC=88=98= =EB=93=A4=EC=9D=B4 =EB=8C=80=EB=B6=80=EB=B6=84=EC=9E=85=EB=8B=88=EB=8B=A4. - -=EC=97=AC=EA=B8=B0=EC=84=A0 _=EC=B5=9C=EC=86=8C=ED=95=9C=EC=9D=98_ =EB=B3= =B4=EC=9E=A5=EC=9D=84 =EC=84=A4=EB=AA=85=ED=95=A9=EB=8B=88=EB=8B=A4; =ED=8A= =B9=EC=A0=95 =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90=EC=97=90=EC=84=9C=EB=8A= =94 =EC=9D=B4 =EC=84=A4=EB=AA=85=EB=B3=B4=EB=8B=A4 =EB=8D=94 =EB=A7=8E=EC= =9D=80 -=EB=B3=B4=EC=9E=A5=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=A0 =EC=88=98=EB=8F=84= =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4=EB=A7=8C =ED=95=B4=EB=8B=B9 =EC=95=84= =ED=82=A4=ED=85=8D=EC=B3=90=EC=97=90 =EC=A2=85=EC=86=8D=EC=A0=81=EC=9D=B8 = =EC=BD=94=EB=93=9C =EC=99=B8=EC=9D=98 =EB=B6=80=EB=B6=84=EC=97=90=EC=84=9C= =EB=8A=94 -=EA=B7=B8=EB=9F=B0 =EB=B3=B4=EC=9E=A5=EC=9D=84 =EA=B8=B0=EB=8C=80=ED=95=B4= =EC=84=A0 =EC=95=88=EB=90=A0=EA=B2=81=EB=8B=88=EB=8B=A4. - - -=EB=9D=BD ACQUISITION =ED=95=A8=EC=88=98 -------------------- - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=9D=80 =EB=8B=A4=EC=96=91= =ED=95=9C =EB=9D=BD =EA=B5=AC=EC=84=B1=EC=B2=B4=EB=A5=BC =EA=B0=80=EC=A7=80= =EA=B3=A0 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (*) =EC=8A=A4=ED=95=80 =EB=9D=BD - (*) R/W =EC=8A=A4=ED=95=80 =EB=9D=BD - (*) =EB=AE=A4=ED=85=8D=EC=8A=A4 - (*) =EC=84=B8=EB=A7=88=ED=8F=AC=EC=96=B4 - (*) R/W =EC=84=B8=EB=A7=88=ED=8F=AC=EC=96=B4 - -=EA=B0=81 =EA=B5=AC=EC=84=B1=EC=B2=B4=EB=A7=88=EB=8B=A4 =EB=AA=A8=EB=93=A0= =EA=B2=BD=EC=9A=B0=EC=97=90 "ACQUIRE" =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4= =EC=85=98=EA=B3=BC "RELEASE" =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EC=9D=98 =EB=B3=80=EC=A2=85=EC=9D=B4 -=EC=A1=B4=EC=9E=AC=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EC=98=A4=ED=8D= =BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=80 =EB=AA=A8=EB=91=90 =EC=A0= =81=EC=A0=88=ED=95=9C =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=ED=8F= =AC=ED=95=98=EA=B3=A0 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (1) ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=98 =EC=98= =81=ED=96=A5: - - ACQUIRE =EB=92=A4=EC=97=90=EC=84=9C =EC=9A=94=EC=B2=AD=EB=90=9C =EB= =A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC= =9D=80 ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 =EC= =99=84=EB=A3=8C=EB=90=9C - =EB=92=A4=EC=97=90 =EC=99=84=EB=A3=8C=EB=90=A9=EB=8B=88=EB=8B=A4. - - ACQUIRE =EC=95=9E=EC=97=90=EC=84=9C =EC=9A=94=EC=B2=AD=EB=90=9C =EB= =A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC= =9D=80 ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 =EC= =99=84=EB=A3=8C=EB=90=9C =ED=9B=84=EC=97=90 - =EC=99=84=EB=A3=8C=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4. - - (2) RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=98 =EC=98= =81=ED=96=A5: - - RELEASE =EC=95=9E=EC=97=90=EC=84=9C =EC=9A=94=EC=B2=AD=EB=90=9C =EB= =A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC= =9D=80 RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 =EC= =99=84=EB=A3=8C=EB=90=98=EA=B8=B0 - =EC=A0=84=EC=97=90 =EC=99=84=EB=A3=8C=EB=90=A9=EB=8B=88=EB=8B=A4. - - RELEASE =EB=92=A4=EC=97=90=EC=84=9C =EC=9A=94=EC=B2=AD=EB=90=9C =EB= =A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC= =9D=80 RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EC=99=84=EB= =A3=8C =EC=A0=84=EC=97=90 - =EC=99=84=EB=A3=8C=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB= =8B=A4. - - (3) ACQUIRE vs ACQUIRE =EC=98=81=ED=96=A5: - - =EC=96=B4=EB=96=A4 ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EB=B3=B4=EB=8B=A4 =EC=95=9E=EC=97=90=EC=84=9C =EC=9A=94=EC=B2=AD=EB=90= =9C =EB=AA=A8=EB=93=A0 ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EC=9D=80 =EA=B7=B8 - ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EC=A0=84=EC=97= =90 =EC=99=84=EB=A3=8C=EB=90=A9=EB=8B=88=EB=8B=A4. - - (4) ACQUIRE vs RELEASE implication: - - =EC=96=B4=EB=96=A4 RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85= =98=EB=B3=B4=EB=8B=A4 =EC=95=9E=EC=84=9C =EC=9A=94=EC=B2=AD=EB=90=9C ACQUIR= E =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=80 =EA=B7=B8 RELEASE - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=B3=B4=EB=8B=A4 =EB= =A8=BC=EC=A0=80 =EC=99=84=EB=A3=8C=EB=90=A9=EB=8B=88=EB=8B=A4. - - (5) =EC=8B=A4=ED=8C=A8=ED=95=9C =EC=A1=B0=EA=B1=B4=EC=A0=81 ACQUIRE =EC= =98=81=ED=96=A5: - - ACQUIRE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=98 =EC=9D= =BC=EB=B6=80 =EB=9D=BD(lock) =EB=B3=80=EC=A2=85=EC=9D=80 =EB=9D=BD=EC=9D=B4= =EA=B3=A7=EB=B0=94=EB=A1=9C =ED=9A=8D=EB=93=9D=ED=95=98=EA=B8=B0=EC=97=90= =EB=8A=94 - =EB=B6=88=EA=B0=80=EB=8A=A5=ED=95=9C =EC=83=81=ED=83=9C=EC=9D=B4=EA= =B1=B0=EB=82=98 =EB=9D=BD=EC=9D=B4 =ED=9A=8D=EB=93=9D =EA=B0=80=EB=8A=A5=ED= =95=B4=EC=A7=80=EB=8F=84=EB=A1=9D =EA=B8=B0=EB=8B=A4=EB=A6=AC=EB=8A=94 =EB= =8F=84=EC=A4=91 =EC=8B=9C=EA=B7=B8=EB=84=90=EC=9D=84 =EB=B0=9B=EA=B1=B0=EB= =82=98 - =ED=95=B4=EC=84=9C =EC=8B=A4=ED=8C=A8=ED=95=A0 =EC=88=98 =EC=9E=88=EC= =8A=B5=EB=8B=88=EB=8B=A4. =EC=8B=A4=ED=8C=A8=ED=95=9C =EB=9D=BD=EC=9D=80 = =EC=96=B4=EB=96=A4 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8F=84 =EB=82=B4=ED=8F=AC= =ED=95=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - -[!] =EC=B0=B8=EA=B3=A0: =EB=9D=BD ACQUIRE =EC=99=80 RELEASE =EA=B0=80 =EB= =8B=A8=EB=B0=A9=ED=96=A5 =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=97=AC=EC=84=9C =EB= =82=98=ED=83=80=EB=82=98=EB=8A=94 =ED=98=84=EC=83=81 =EC=A4=91 =ED=95=98=EB= =82=98=EB=8A=94 -=ED=81=AC=EB=A6=AC=ED=8B=B0=EC=BB=AC =EC=84=B9=EC=85=98 =EB=B0=94=EA=B9=A5= =EC=9D=98 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=98 =EC=98=81= =ED=96=A5=EC=9D=B4 =ED=81=AC=EB=A6=AC=ED=8B=B0=EC=BB=AC =EC=84=B9=EC=85=98 = =EB=82=B4=EB=B6=80=EB=A1=9C=EB=8F=84 =EB=93=A4=EC=96=B4=EC=98=AC =EC=88=98 -=EC=9E=88=EB=8B=A4=EB=8A=94 =EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4. - -RELEASE =ED=9B=84=EC=97=90 =EC=9A=94=EC=B2=AD=EB=90=98=EB=8A=94 ACQUIRE = =EB=8A=94 =EC=A0=84=EC=B2=B4 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC= =EC=96=B4=EB=9D=BC =EC=97=AC=EA=B2=A8=EC=A7=80=EB=A9=B4 =EC=95=88=EB=90=98= =EB=8A=94=EB=8D=B0, -ACQUIRE =EC=95=9E=EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EA=B0=80 ACQUIRE = =ED=9B=84=EC=97=90 =EC=88=98=ED=96=89=EB=90=A0 =EC=88=98 =EC=9E=88=EA=B3=A0= , RELEASE =ED=9B=84=EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EA=B0=80 -RELEASE =EC=A0=84=EC=97=90 =EC=88=98=ED=96=89=EB=90=A0 =EC=88=98=EB=8F=84 = =EC=9E=88=EC=9C=BC=EB=A9=B0, =EA=B7=B8 =EB=91=90=EA=B0=9C=EC=9D=98 =EC=95= =A1=EC=84=B8=EC=8A=A4=EA=B0=80 =EC=84=9C=EB=A1=9C=EB=A5=BC =EC=A7=80=EB=82= =98=EC=B9=A0 =EC=88=98=EB=8F=84 =EC=9E=88=EA=B8=B0 -=EB=95=8C=EB=AC=B8=EC=9E=85=EB=8B=88=EB=8B=A4: - - *A =3D a; - ACQUIRE M - RELEASE M - *B =3D b; - -=EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =EB=90=A0 =EC=88= =98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - ACQUIRE M, STORE *B, STORE *A, RELEASE M - -ACQUIRE =EC=99=80 RELEASE =EA=B0=80 =EB=9D=BD =ED=9A=8D=EB=93=9D=EA=B3=BC = =ED=95=B4=EC=A0=9C=EB=9D=BC=EB=A9=B4, =EA=B7=B8=EB=A6=AC=EA=B3=A0 =EB=9D=BD= =EC=9D=98 ACQUIRE =EC=99=80 RELEASE =EA=B0=80 -=EA=B0=99=EC=9D=80 =EB=9D=BD =EB=B3=80=EC=88=98=EC=97=90 =EB=8C=80=ED=95= =9C =EA=B2=83=EC=9D=B4=EB=9D=BC=EB=A9=B4, =ED=95=B4=EB=8B=B9 =EB=9D=BD=EC= =9D=84 =EC=A5=90=EA=B3=A0 =EC=9E=88=EC=A7=80 =EC=95=8A=EC=9D=80 =EB=8B=A4= =EB=A5=B8 CPU =EC=9D=98 =EC=8B=9C=EC=95=BC=EC=97=90=EB=8A=94 -=EC=9D=B4=EC=99=80 =EA=B0=99=EC=9D=80 =EC=9E=AC=EB=B0=B0=EC=B9=98=EA=B0=80= =EC=9D=BC=EC=96=B4=EB=82=98=EB=8A=94 =EA=B2=83=EC=9C=BC=EB=A1=9C =EB=B3=B4= =EC=9D=BC =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9A=94=EC=95= =BD=ED=95=98=EC=9E=90=EB=A9=B4, ACQUIRE =EC=97=90 -=EC=9D=B4=EC=96=B4 RELEASE =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EC=9D=84 =EC=88=9C=EC=B0=A8=EC=A0=81=EC=9C=BC=EB=A1=9C =EC=8B=A4=ED=96=89= =ED=95=98=EB=8A=94 =ED=96=89=EC=9C=84=EA=B0=80 =EC=A0=84=EC=B2=B4 =EB=A9=94= =EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A1=9C -=EC=83=9D=EA=B0=81=EB=90=98=EC=96=B4=EC=84=A0 -=EC=95=88=EB=90=A9=EB=8B=88= =EB=8B=A4-. - -=EB=B9=84=EC=8A=B7=ED=95=98=EA=B2=8C, =EC=95=9E=EC=9D=98 =EB=B0=98=EB=8C= =80 =EC=BC=80=EC=9D=B4=EC=8A=A4=EC=9D=B8 RELEASE =EC=99=80 ACQUIRE =EB=91= =90=EA=B0=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=98 =EC=88= =9C=EC=B0=A8=EC=A0=81 =EC=8B=A4=ED=96=89 -=EC=97=AD=EC=8B=9C =EC=A0=84=EC=B2=B4 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0= =B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=ED=8F=AC=ED=95=98=EC=A7=80 =EC=95= =8A=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=94=B0=EB=9D=BC=EC=84=9C, RELEASE, ACQU= IRE =EB=A1=9C -=EA=B7=9C=EC=A0=95=EB=90=98=EB=8A=94 =ED=81=AC=EB=A6=AC=ED=8B=B0=EC=BB=AC = =EC=84=B9=EC=85=98=EC=9D=98 CPU =EC=88=98=ED=96=89=EC=9D=80 RELEASE =EC=99= =80 ACQUIRE =EB=A5=BC =EA=B0=80=EB=A1=9C=EC=A7=80=EB=A5=BC =EC=88=98 =EC=9E= =88=EC=9C=BC=EB=AF=80=EB=A1=9C, -=EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EC=BD=94=EB=93=9C=EB=8A=94: - - *A =3D a; - RELEASE M - ACQUIRE N - *B =3D b; - -=EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =EC=88=98=ED=96=89=EB=90=A0= =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - ACQUIRE N, STORE *B, STORE *A, RELEASE M - -=EC=9D=B4=EB=9F=B0 =EC=9E=AC=EB=B0=B0=EC=B9=98=EB=8A=94 =EB=8D=B0=EB=93=9C= =EB=9D=BD=EC=9D=84 =EC=9D=BC=EC=9C=BC=ED=82=AC =EC=88=98=EB=8F=84 =EC=9E=88= =EC=9D=84 =EA=B2=83=EC=B2=98=EB=9F=BC =EB=B3=B4=EC=9D=BC =EC=88=98 =EC=9E= =88=EC=8A=B5=EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7=80=EB=A7=8C, =EA=B7=B8=EB= =9F=B0 -=EB=8D=B0=EB=93=9C=EB=9D=BD=EC=9D=98 =EC=A1=B0=EC=A7=90=EC=9D=B4 =EC=9E=88= =EB=8B=A4=EB=A9=B4 RELEASE =EB=8A=94 =EB=8B=A8=EC=88=9C=ED=9E=88 =EC=99=84= =EB=A3=8C=EB=90=A0 =EA=B2=83=EC=9D=B4=EB=AF=80=EB=A1=9C =EB=8D=B0=EB=93=9C= =EB=9D=BD=EC=9D=80 =EC=A1=B4=EC=9E=AC=ED=95=A0 =EC=88=98 -=EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4. - - =EC=9D=B4=EA=B2=8C =EC=96=B4=EB=96=BB=EA=B2=8C =EC=98=AC=EB=B0=94=EB=A5= =B8 =EB=8F=99=EC=9E=91=EC=9D=84 =ED=95=A0 =EC=88=98 =EC=9E=88=EC=9D=84=EA= =B9=8C=EC=9A=94? - - =EC=9A=B0=EB=A6=AC=EA=B0=80 =EC=9D=B4=EC=95=BC=EA=B8=B0 =ED=95=98=EA=B3= =A0 =EC=9E=88=EB=8A=94=EA=B1=B4 =EC=9E=AC=EB=B0=B0=EC=B9=98=EB=A5=BC =ED=95= =98=EB=8A=94 CPU =EC=97=90 =EB=8C=80=ED=95=9C =EC=9D=B4=EC=95=BC=EA=B8=B0= =EC=9D=B4=EC=A7=80, - =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC=97=90 =EB=8C=80=ED=95=9C =EA=B2= =83=EC=9D=B4 =EC=95=84=EB=8B=88=EB=9E=80 =EC=A0=90=EC=9D=B4 =ED=95=B5=EC=8B= =AC=EC=9E=85=EB=8B=88=EB=8B=A4. =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC (=EB= =98=90=EB=8A=94, =EA=B0=9C=EB=B0=9C=EC=9E=90) - =EA=B0=80 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84= =EC=9D=B4=EB=A0=87=EA=B2=8C =EC=9E=AC=EB=B0=B0=EC=B9=98=ED=95=98=EB=A9=B4,= =EB=8D=B0=EB=93=9C=EB=9D=BD=EC=9D=B4 =EC=9D=BC=EC=96=B4=EB=82=A0 =EC=88=98= -=EC=9E=88=EC=8A=B5-=EB=8B=88=EB=8B=A4. - - =ED=95=98=EC=A7=80=EB=A7=8C CPU =EA=B0=80 =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EB=93=A4=EC=9D=84 =EC=9E=AC=EB=B0=B0=EC=B9=98 =ED=96=88=EB= =8B=A4=EB=8A=94=EA=B1=B8 =EC=83=9D=EA=B0=81=ED=95=B4 =EB=B3=B4=EC=84=B8=EC= =9A=94. =EC=9D=B4 =EC=98=88=EC=97=90=EC=84=9C, - =EC=96=B4=EC=85=88=EB=B8=94=EB=A6=AC =EC=BD=94=EB=93=9C =EC=83=81=EC=9C= =BC=EB=A1=9C=EB=8A=94 =EC=96=B8=EB=9D=BD=EC=9D=B4 =EB=9D=BD=EC=9D=84 =EC=95= =9E=EC=84=9C=EA=B2=8C =EB=90=98=EC=96=B4 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B= =A4. CPU =EA=B0=80 =EC=9D=B4=EB=A5=BC - =EC=9E=AC=EB=B0=B0=EC=B9=98=ED=95=B4=EC=84=9C =EB=92=A4=EC=9D=98 =EB=9D= =BD =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EB=A8=BC=EC=A0= =80 =EC=8B=A4=ED=96=89=ED=95=98=EA=B2=8C =EB=90=A9=EB=8B=88=EB=8B=A4. =EB= =A7=8C=EC=95=BD =EB=8D=B0=EB=93=9C=EB=9D=BD=EC=9D=B4 - =EC=A1=B4=EC=9E=AC=ED=95=9C=EB=8B=A4=EB=A9=B4, =EC=9D=B4 =EB=9D=BD =EC=98= =A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=80 =EA=B7=B8=EC=A0=80 =EC=8A= =A4=ED=95=80=EC=9D=84 =ED=95=98=EB=A9=B0 =EA=B3=84=EC=86=8D=ED=95=B4=EC=84= =9C =EB=9D=BD=EC=9D=84 - =EC=8B=9C=EB=8F=84=ED=95=A9=EB=8B=88=EB=8B=A4 (=EB=98=90=EB=8A=94, =ED=95= =9C=EC=B0=B8 =ED=9B=84=EC=97=90=EA=B2=A0=EC=A7=80=EB=A7=8C, =EC=9E=A0=EB=93= =AD=EB=8B=88=EB=8B=A4). CPU =EB=8A=94 =EC=96=B8=EC=A0=A0=EA=B0=80=EB=8A=94 - (=EC=96=B4=EC=85=88=EB=B8=94=EB=A6=AC =EC=BD=94=EB=93=9C=EC=97=90=EC=84= =9C=EB=8A=94 =EB=9D=BD=EC=9D=84 =EC=95=9E=EC=84=9C=EB=8A=94) =EC=96=B8=EB= =9D=BD =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EC=8B=A4=ED= =96=89=ED=95=98=EB=8A=94=EB=8D=B0, =EC=9D=B4 =EC=96=B8=EB=9D=BD - =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 =EC=9E=A0=EC=9E=AC= =EC=A0=81 =EB=8D=B0=EB=93=9C=EB=9D=BD=EC=9D=84 =ED=95=B4=EA=B2=B0=ED=95=98= =EA=B3=A0, =EB=9D=BD =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=8F=84= =EB=92=A4=EC=9D=B4=EC=96=B4 =EC=84=B1=EA=B3=B5=ED=95=98=EA=B2=8C - =EB=90=A9=EB=8B=88=EB=8B=A4. - - =ED=95=98=EC=A7=80=EB=A7=8C =EB=A7=8C=EC=95=BD =EB=9D=BD=EC=9D=B4 =EC=9E= =A0=EC=9D=84 =EC=9E=90=EB=8A=94 =ED=83=80=EC=9E=85=EC=9D=B4=EC=97=88=EB=8B= =A4=EB=A9=B4=EC=9A=94? =EA=B7=B8=EB=9F=B0 =EA=B2=BD=EC=9A=B0=EC=97=90 =EC= =BD=94=EB=93=9C=EB=8A=94 - =EC=8A=A4=EC=BC=80=EC=A5=B4=EB=9F=AC=EB=A1=9C =EB=93=A4=EC=96=B4=EA=B0=80= =EB=A0=A4 =ED=95=A0 =EA=B1=B0=EA=B3=A0, =EC=97=AC=EA=B8=B0=EC=84=9C =EA=B2= =B0=EA=B5=AD=EC=9D=80 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96= =B4=EB=A5=BC =EB=A7=8C=EB=82=98=EA=B2=8C - =EB=90=98=EB=8A=94=EB=8D=B0, =EC=9D=B4 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0= =B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=95=9E=EC=9D=98 =EC=96=B8=EB=9D=BD =EC=98= =A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 =EC=99=84=EB=A3=8C=EB=90= =98=EB=8F=84=EB=A1=9D =EB=A7=8C=EB=93=A4=EA=B3=A0, - =EB=8D=B0=EB=93=9C=EB=9D=BD=EC=9D=80 =EC=9D=B4=EB=B2=88=EC=97=90=EB=8F=84= =ED=95=B4=EA=B2=B0=EB=90=A9=EB=8B=88=EB=8B=A4. =EC=9E=A0=EC=9D=84 =EC=9E= =90=EB=8A=94 =ED=96=89=EC=9C=84=EC=99=80 =EC=96=B8=EB=9D=BD =EC=82=AC=EC=9D= =B4=EC=9D=98 =EA=B2=BD=EC=A3=BC =EC=83=81=ED=99=A9 - (race) =EB=8F=84 =EC=9E=88=EC=9D=84 =EC=88=98 =EC=9E=88=EA=B2=A0=EC=8A=B5= =EB=8B=88=EB=8B=A4=EB=A7=8C, =EB=9D=BD =EA=B4=80=EB=A0=A8 =EA=B8=B0=EB=8A= =A5=EB=93=A4=EC=9D=80 =EA=B7=B8=EB=9F=B0 =EA=B2=BD=EC=A3=BC =EC=83=81=ED=99= =A9=EC=9D=84 =EB=AA=A8=EB=93=A0 - =EA=B2=BD=EC=9A=B0=EC=97=90 =EC=A0=9C=EB=8C=80=EB=A1=9C =ED=95=B4=EA=B2= =B0=ED=95=A0 =EC=88=98 =EC=9E=88=EC=96=B4=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B= =A4. - -=EB=9D=BD=EA=B3=BC =EC=84=B8=EB=A7=88=ED=8F=AC=EC=96=B4=EB=8A=94 UP =EC=BB= =B4=ED=8C=8C=EC=9D=BC=EB=90=9C =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84= =9C=EC=9D=98 =EC=88=9C=EC=84=9C=EC=97=90 =EB=8C=80=ED=95=B4 =EB=B3=B4=EC=9E= =A5=EC=9D=84 =ED=95=98=EC=A7=80 =EC=95=8A=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97= =90, -=EA=B7=B8=EB=9F=B0 =EC=83=81=ED=99=A9=EC=97=90=EC=84=9C =EC=9D=B8=ED=84=B0= =EB=9F=BD=ED=8A=B8 =EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94 =EC=98=A4=ED=8D=BC= =EB=A0=88=EC=9D=B4=EC=85=98=EA=B3=BC =ED=95=A8=EA=BB=98=EA=B0=80 =EC=95=84= =EB=8B=88=EB=9D=BC=EB=A9=B4 =EC=96=B4=EB=96=A4 =EC=9D=BC=EC=97=90=EB=8F=84 = - =ED=8A=B9=ED=9E=88 -I/O =EC=95=A1=EC=84=B8=EC=8A=A4=EC=99=80 =EA=B4=80=EB=A0=A8=ED=95=B4=EC=84= =9C=EB=8A=94 - =EC=A0=9C=EB=8C=80=EB=A1=9C =EC=82=AC=EC=9A=A9=EB=90=A0 =EC= =88=98 =EC=97=86=EC=9D=84 =EA=B2=81=EB=8B=88=EB=8B=A4. - -"CPU =EA=B0=84 ACQUIRING =EB=B0=B0=EB=A6=AC=EC=96=B4 =ED=9A=A8=EA=B3=BC" = =EC=84=B9=EC=85=98=EB=8F=84 =EC=B0=B8=EA=B3=A0=ED=95=98=EC=8B=9C=EA=B8=B0 = =EB=B0=94=EB=9E=8D=EB=8B=88=EB=8B=A4. - - -=EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0= =99=EC=9D=80 =EC=BD=94=EB=93=9C=EB=A5=BC =EC=83=9D=EA=B0=81=ED=95=B4 =EB=B4= =85=EC=8B=9C=EB=8B=A4: - - *A =3D a; - *B =3D b; - ACQUIRE - *C =3D c; - *D =3D d; - RELEASE - *E =3D e; - *F =3D f; - -=EC=97=AC=EA=B8=B0=EC=84=A0 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=9D=B4=EB=B2=A4= =ED=8A=B8 =EC=8B=9C=ED=80=80=EC=8A=A4=EA=B0=80 =EC=83=9D=EA=B8=B8 =EC=88=98= =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - ACQUIRE, {*F,*A}, *E, {*C,*D}, *B, RELEASE - - [+] {*F,*A} =EB=8A=94 =EC=A1=B0=ED=95=A9=EB=90=9C =EC=95=A1=EC=84=B8=EC= =8A=A4=EB=A5=BC =EC=9D=98=EB=AF=B8=ED=95=A9=EB=8B=88=EB=8B=A4. - -=ED=95=98=EC=A7=80=EB=A7=8C =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80= =EA=B1=B4 =EB=B6=88=EA=B0=80=EB=8A=A5=ED=95=98=EC=A3=A0: - - {*F,*A}, *B, ACQUIRE, *C, *D, RELEASE, *E - *A, *B, *C, ACQUIRE, *D, RELEASE, *E, *F - *A, *B, ACQUIRE, *C, RELEASE, *D, *E, *F - *B, ACQUIRE, *C, *D, RELEASE, {*F,*A}, *E - - - -=EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94 = =ED=95=A8=EC=88=98 ----------------------- - -=EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8=EB=A5=BC =EB=B9=84=ED=99=9C=EC=84=B1= =ED=99=94 =ED=95=98=EB=8A=94 =ED=95=A8=EC=88=98 (ACQUIRE =EC=99=80 =EB=8F= =99=EC=9D=BC) =EC=99=80 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8=EB=A5=BC =ED= =99=9C=EC=84=B1=ED=99=94 =ED=95=98=EB=8A=94 =ED=95=A8=EC=88=98 -(RELEASE =EC=99=80 =EB=8F=99=EC=9D=BC) =EB=8A=94 =EC=BB=B4=ED=8C=8C=EC=9D= =BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=B2=98=EB=9F=BC=EB=A7=8C =EB=8F= =99=EC=9E=91=ED=95=A9=EB=8B=88=EB=8B=A4. =EB=94=B0=EB=9D=BC=EC=84=9C, =EB= =B3=84=EB=8F=84=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC -=EB=B0=B0=EB=A6=AC=EC=96=B4=EB=82=98 I/O =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0= =80 =ED=95=84=EC=9A=94=ED=95=9C =EC=83=81=ED=99=A9=EC=9D=B4=EB=9D=BC=EB=A9= =B4 =EA=B7=B8 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=93=A4=EC=9D=80 =EC=9D=B8=ED=84= =B0=EB=9F=BD=ED=8A=B8 =EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94 =ED=95=A8=EC=88= =98 -=EC=99=B8=EC=9D=98 =EB=B0=A9=EB=B2=95=EC=9C=BC=EB=A1=9C =EC=A0=9C=EA=B3=B5= =EB=90=98=EC=96=B4=EC=95=BC=EB=A7=8C =ED=95=A9=EB=8B=88=EB=8B=A4. - - -=EC=8A=AC=EB=A6=BD=EA=B3=BC =EC=9B=A8=EC=9D=B4=ED=81=AC=EC=97=85 =ED=95=A8= =EC=88=98 --------------------- - -=EA=B8=80=EB=A1=9C=EB=B2=8C =EB=8D=B0=EC=9D=B4=ED=84=B0=EC=97=90 =ED=91=9C= =EC=8B=9C=EB=90=9C =EC=9D=B4=EB=B2=A4=ED=8A=B8=EC=97=90 =EC=9D=98=ED=95=B4 = =ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=EB=A5=BC =EC=9E=A0=EC=97=90 =EB=B9=A0= =ED=8A=B8=EB=A6=AC=EB=8A=94 =EA=B2=83=EA=B3=BC =EA=B9=A8=EC=9A=B0=EB=8A=94 = =EA=B2=83=EC=9D=80 -=ED=95=B4=EB=8B=B9 =EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=A5=BC =EA=B8=B0=EB=8B=A4= =EB=A6=AC=EB=8A=94 =ED=83=9C=EC=8A=A4=ED=81=AC=EC=9D=98 =ED=83=9C=EC=8A=A4= =ED=81=AC =EC=83=81=ED=83=9C=EC=99=80 =EA=B7=B8 =EC=9D=B4=EB=B2=A4=ED=8A=B8= =EB=A5=BC =EC=95=8C=EB=A6=AC=EA=B8=B0 =EC=9C=84=ED=95=B4 =EC=82=AC=EC=9A=A9= =EB=90=98=EB=8A=94 -=EA=B8=80=EB=A1=9C=EB=B2=8C =EB=8D=B0=EC=9D=B4=ED=84=B0, =EB=91=90 =EB=8D= =B0=EC=9D=B4=ED=84=B0=EA=B0=84=EC=9D=98 =EC=83=81=ED=98=B8=EC=9E=91=EC=9A= =A9=EC=9C=BC=EB=A1=9C =EB=B3=BC =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B= =A4. =EC=9D=B4=EA=B2=83=EC=9D=B4 =EC=98=B3=EC=9D=80 =EC=88=9C=EC=84=9C=EB= =8C=80=EB=A1=9C -=EC=9D=BC=EC=96=B4=EB=82=A8=EC=9D=84 =EB=B6=84=EB=AA=85=ED=9E=88 =ED=95=98= =EA=B8=B0 =EC=9C=84=ED=95=B4, =ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=EB=A5=BC= =EC=9E=A0=EC=97=90 =EB=93=A4=EA=B2=8C =ED=95=98=EB=8A=94 =EA=B8=B0=EB=8A= =A5=EA=B3=BC =EA=B9=A8=EC=9A=B0=EB=8A=94 =EA=B8=B0=EB=8A=A5=EC=9D=80 -=EB=AA=87=EA=B0=80=EC=A7=80 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4= =ED=8F=AC=ED=95=A9=EB=8B=88=EB=8B=A4. - -=EB=A8=BC=EC=A0=80, =EC=9E=A0=EC=9D=84 =EC=9E=AC=EC=9A=B0=EB=8A=94 =EC=AA= =BD=EC=9D=80 =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C =EB=8B=A4=EC=9D= =8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EC=9D=B4=EB=B2=A4=ED=8A=B8 =EC=8B=9C=ED=80= =80=EC=8A=A4=EB=A5=BC =EB=94=B0=EB=A6=85=EB=8B=88=EB=8B=A4: - - for (;;) { - set_current_state(TASK_UNINTERRUPTIBLE); - if (event_indicated) - break; - schedule(); - } - -set_current_state() =EC=97=90 =EC=9D=98=ED=95=B4, =ED=83=9C=EC=8A=A4=ED=81= =AC =EC=83=81=ED=83=9C=EA=B0=80 =EB=B0=94=EB=80=90 =ED=9B=84 =EB=B2=94=EC= =9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 -=EC=9E=90=EB=8F=99=EC=9C=BC=EB=A1=9C =EC=82=BD=EC=9E=85=EB=90=A9=EB=8B=88= =EB=8B=A4: - - CPU 1 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D - set_current_state(); - smp_store_mb(); - STORE current->state - <=EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4> - LOAD event_indicated - -set_current_state() =EB=8A=94 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EA=B2=83=EB=93= =A4=EB=A1=9C =EA=B0=90=EC=8B=B8=EC=A7=88 =EC=88=98=EB=8F=84 =EC=9E=88=EC=8A= =B5=EB=8B=88=EB=8B=A4: - - prepare_to_wait(); - prepare_to_wait_exclusive(); - -=EC=9D=B4=EA=B2=83=EB=93=A4 =EC=97=AD=EC=8B=9C =EC=83=81=ED=83=9C=EB=A5=BC= =EC=84=A4=EC=A0=95=ED=95=9C =ED=9B=84 =EB=B2=94=EC=9A=A9 =EB=A9=94=EB=AA= =A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=82=BD=EC=9E=85=ED=95= =A9=EB=8B=88=EB=8B=A4. -=EC=95=9E=EC=9D=98 =EC=A0=84=EC=B2=B4 =EC=8B=9C=ED=80=80=EC=8A=A4=EB=8A=94= =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =ED=95=A8=EC=88=98=EB=93=A4= =EB=A1=9C =ED=95=9C=EB=B2=88=EC=97=90 =EC=88=98=ED=96=89 =EA=B0=80=EB=8A=A5= =ED=95=9C=EB=8D=B0, =EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 =EB=AA=A8=EB=91=90 -=EC=98=AC=EB=B0=94=EB=A5=B8 =EC=9E=A5=EC=86=8C=EC=97=90 =EB=A9=94=EB=AA=A8= =EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=82=BD=EC=9E=85=ED=95=A9= =EB=8B=88=EB=8B=A4: - - wait_event(); - wait_event_interruptible(); - wait_event_interruptible_exclusive(); - wait_event_interruptible_timeout(); - wait_event_killable(); - wait_event_timeout(); - wait_on_bit(); - wait_on_bit_lock(); - - -=EB=91=90=EB=B2=88=EC=A7=B8=EB=A1=9C, =EA=B9=A8=EC=9A=B0=EA=B8=B0=EB=A5=BC= =EC=88=98=ED=96=89=ED=95=98=EB=8A=94 =EC=BD=94=EB=93=9C=EB=8A=94 =EC=9D=BC= =EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99= =EC=9D=84 =EA=B2=81=EB=8B=88=EB=8B=A4: - - event_indicated =3D 1; - wake_up(&event_wait_queue); - -=EB=98=90=EB=8A=94: - - event_indicated =3D 1; - wake_up_process(event_daemon); - -wake_up() =EC=9D=B4 =EB=AC=B4=EC=96=B8=EA=B0=80=EB=A5=BC =EA=B9=A8=EC=9A= =B0=EA=B2=8C =EB=90=98=EB=A9=B4, =EC=9D=B4 =ED=95=A8=EC=88=98=EB=8A=94 =EB= =B2=94=EC=9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB= =A5=BC =EC=88=98=ED=96=89=ED=95=A9=EB=8B=88=EB=8B=A4. -=EC=9D=B4 =ED=95=A8=EC=88=98=EA=B0=80 =EC=95=84=EB=AC=B4=EA=B2=83=EB=8F=84= =EA=B9=A8=EC=9A=B0=EC=A7=80 =EC=95=8A=EB=8A=94=EB=8B=A4=EB=A9=B4 =EB=A9=94= =EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=88=98=ED=96=89= =EB=90=A0 =EC=88=98=EB=8F=84, =EC=88=98=ED=96=89=EB=90=98=EC=A7=80 =EC=95= =8A=EC=9D=84 -=EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4; =EC=9D=B4 =EA=B2= =BD=EC=9A=B0=EC=97=90 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96= =B4=EB=A5=BC =EC=88=98=ED=96=89=ED=95=A0 =EA=B1=B0=EB=9D=BC =EC=98=A4=ED=95= =B4=ED=95=B4=EC=84=A0 =EC=95=88=EB=90=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4 -=EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =ED=83=9C=EC=8A=A4=ED=81=AC =EC=83=81= =ED=83=9C=EA=B0=80 =EC=A0=91=EA=B7=BC=EB=90=98=EA=B8=B0 =EC=A0=84=EC=97=90 = =EC=88=98=ED=96=89=EB=90=98=EB=8A=94=EB=8D=B0, =EC=9E=90=EC=84=B8=ED=9E=88 = =EB=A7=90=ED=95=98=EB=A9=B4 =EC=9D=B4 =EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=A5=BC -=EC=95=8C=EB=A6=AC=EA=B8=B0 =EC=9C=84=ED=95=9C STORE =EC=99=80 TASK_RUNNIN= G =EC=9C=BC=EB=A1=9C =EC=83=81=ED=83=9C=EB=A5=BC =EC=93=B0=EB=8A=94 STORE = =EC=82=AC=EC=9D=B4=EC=97=90 =EC=88=98=ED=96=89=EB=90=A9=EB=8B=88=EB=8B=A4: - - CPU 1 (Sleeper) CPU 2 (Waker) - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - set_current_state(); STORE event_indicated - smp_store_mb(); wake_up(); - STORE current->state ... - <=EB=B2=94=EC=9A=A9 =EB=B0=B0=EB=A6=AC=EC=96=B4> <=EB=B2=94=EC=9A= =A9 =EB=B0=B0=EB=A6=AC=EC=96=B4> - LOAD event_indicated if ((LOAD task->state) & TASK_NORMAL) - STORE task->state - -=EC=97=AC=EA=B8=B0=EC=84=9C "task" =EB=8A=94 =EA=B9=A8=EC=96=B4=EB=82=98= =EC=A7=80=EB=8A=94 =EC=93=B0=EB=A0=88=EB=93=9C=EC=9D=B4=EA=B3=A0 CPU 1 =EC= =9D=98 "current" =EC=99=80 =EA=B0=99=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EB=B0=98=EB=B3=B5=ED=95=98=EC=A7=80=EB=A7=8C, wake_up() =EC=9D=B4 =EB=AC= =B4=EC=96=B8=EA=B0=80=EB=A5=BC =EC=A0=95=EB=A7=90 =EA=B9=A8=EC=9A=B4=EB=8B= =A4=EB=A9=B4 =EB=B2=94=EC=9A=A9 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6= =AC=EC=96=B4=EA=B0=80 =EC=88=98=ED=96=89=EB=90=A0 -=EA=B2=83=EC=9D=B4 =EB=B3=B4=EC=9E=A5=EB=90=98=EC=A7=80=EB=A7=8C, =EA=B7= =B8=EB=A0=87=EC=A7=80 =EC=95=8A=EB=8B=A4=EB=A9=B4 =EA=B7=B8=EB=9F=B0 =EB=B3= =B4=EC=9E=A5=EC=9D=B4 =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EA= =B1=B8 =EC=9D=B4=ED=95=B4=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4, X =EC=99=80 -Y =EB=8A=94 =EB=AA=A8=EB=91=90 0 =EC=9C=BC=EB=A1=9C =EC=B4=88=EA=B8=B0=ED= =99=94 =EB=90=98=EC=96=B4 =EC=9E=88=EB=8B=A4=EB=8A=94 =EA=B0=80=EC=A0=95 = =ED=95=98=EC=97=90 =EC=95=84=EB=9E=98=EC=9D=98 =EC=9D=B4=EB=B2=A4=ED=8A=B8 = =EC=8B=9C=ED=80=80=EC=8A=A4=EB=A5=BC =EC=83=9D=EA=B0=81=ED=95=B4 -=EB=B4=85=EC=8B=9C=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - X =3D 1; Y =3D 1; - smp_mb(); wake_up(); - LOAD Y LOAD X - -=EC=A0=95=EB=A7=90=EB=A1=9C =EA=B9=A8=EC=9A=B0=EA=B8=B0=EA=B0=80 =ED=96=89= =ED=95=B4=EC=A1=8C=EB=8B=A4=EB=A9=B4, =EB=91=90 =EB=A1=9C=EB=93=9C =EC=A4= =91 (=EC=B5=9C=EC=86=8C=ED=95=9C) =ED=95=98=EB=82=98=EB=8A=94 1 =EC=9D=84 = =EB=B3=B4=EA=B2=8C =EB=90=A9=EB=8B=88=EB=8B=A4. -=EB=B0=98=EB=A9=B4=EC=97=90, =EC=8B=A4=EC=A0=9C =EA=B9=A8=EC=9A=B0=EA=B8= =B0=EA=B0=80 =ED=96=89=ED=95=B4=EC=A7=80=EC=A7=80 =EC=95=8A=EC=95=98=EB=8B= =A4=EB=A9=B4, =EB=91=90 =EB=A1=9C=EB=93=9C =EB=AA=A8=EB=91=90 0=EC=9D=84 = =EB=B3=BC =EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -wake_up_process() =EB=8A=94 =ED=95=AD=EC=83=81 =EB=B2=94=EC=9A=A9 =EB=A9= =94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=88=98=ED=96= =89=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC= =97=AD=EC=8B=9C -=ED=83=9C=EC=8A=A4=ED=81=AC =EC=83=81=ED=83=9C=EA=B0=80 =EC=A0=91=EA=B7=BC= =EB=90=98=EA=B8=B0 =EC=A0=84=EC=97=90 =EC=88=98=ED=96=89=EB=90=A9=EB=8B=88= =EB=8B=A4. =ED=8A=B9=ED=9E=88, =EC=95=9E=EC=9D=98 =EC=98=88=EC=A0=9C =EC= =BD=94=EB=93=9C=EC=97=90=EC=84=9C wake_up() =EC=9D=B4 -wake_up_process() =EB=A1=9C =EB=8C=80=EC=B2=B4=EB=90=9C=EB=8B=A4=EB=A9=B4 = =EB=91=90 =EB=A1=9C=EB=93=9C =EC=A4=91 =ED=95=98=EB=82=98=EB=8A=94 1=EC=9D= =84 =EB=B3=BC =EA=B2=83=EC=9D=B4 =EB=B3=B4=EC=9E=A5=EB=90=A9=EB=8B=88=EB=8B= =A4. - -=EC=82=AC=EC=9A=A9 =EA=B0=80=EB=8A=A5=ED=95=9C =EA=B9=A8=EC=9A=B0=EA=B8=B0= =EB=A5=98 =ED=95=A8=EC=88=98=EB=93=A4=EB=A1=9C =EB=8B=A4=EC=9D=8C=EA=B3=BC = =EA=B0=99=EC=9D=80 =EA=B2=83=EB=93=A4=EC=9D=B4 =EC=9E=88=EC=8A=B5=EB=8B=88= =EB=8B=A4: - - complete(); - wake_up(); - wake_up_all(); - wake_up_bit(); - wake_up_interruptible(); - wake_up_interruptible_all(); - wake_up_interruptible_nr(); - wake_up_interruptible_poll(); - wake_up_interruptible_sync(); - wake_up_interruptible_sync_poll(); - wake_up_locked(); - wake_up_locked_poll(); - wake_up_nr(); - wake_up_poll(); - wake_up_process(); - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EC=88=9C=EC=84=9C=EA=B7=9C=EC=B9=99 =EA=B4=80= =EC=A0=90=EC=97=90=EC=84=9C, =EC=9D=B4 =ED=95=A8=EC=88=98=EB=93=A4=EC=9D=80= =EB=AA=A8=EB=91=90 wake_up() =EA=B3=BC =EA=B0=99=EA=B1=B0=EB=82=98 =EB=B3= =B4=EB=8B=A4 =EA=B0=95=ED=95=9C =EC=88=9C=EC=84=9C -=EB=B3=B4=EC=9E=A5=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=A9=EB=8B=88=EB=8B=A4. - -[!] =EC=9E=A0=EC=9E=AC=EC=9A=B0=EB=8A=94 =EC=BD=94=EB=93=9C=EC=99=80 =EA= =B9=A8=EC=9A=B0=EB=8A=94 =EC=BD=94=EB=93=9C=EC=97=90 =EB=82=B4=ED=8F=AC=EB= =90=98=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB= =93=A4=EC=9D=80 =EA=B9=A8=EC=9A=B0=EA=B8=B0 =EC=A0=84=EC=97=90 -=EC=9D=B4=EB=A3=A8=EC=96=B4=EC=A7=84 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=A5=BC = =EC=9E=A0=EC=9E=AC=EC=9A=B0=EB=8A=94 =EC=BD=94=EB=93=9C=EA=B0=80 set_curren= t_state() =EB=A5=BC =ED=98=B8=EC=B6=9C=ED=95=9C =ED=9B=84=EC=97=90 =ED=96= =89=ED=95=98=EB=8A=94 -=EB=A1=9C=EB=93=9C=EC=97=90 =EB=8C=80=ED=95=B4 =EC=88=9C=EC=84=9C=EB=A5=BC= =EB=A7=9E=EC=B6=94=EC=A7=80 _=EC=95=8A=EB=8A=94=EB=8B=A4=EB=8A=94_ =EC=A0= =90=EC=9D=84 =EA=B8=B0=EC=96=B5=ED=95=98=EC=84=B8=EC=9A=94. =EC=98=88=EB= =A5=BC =EB=93=A4=EC=96=B4, =EC=9E=A0=EC=9E=AC=EC=9A=B0=EB=8A=94 -=EC=BD=94=EB=93=9C=EA=B0=80 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EA=B3=A0: - - set_current_state(TASK_INTERRUPTIBLE); - if (event_indicated) - break; - __set_current_state(TASK_RUNNING); - do_something(my_data); - -=EA=B9=A8=EC=9A=B0=EB=8A=94 =EC=BD=94=EB=93=9C=EB=8A=94 =EB=8B=A4=EC=9D=8C= =EA=B3=BC =EA=B0=99=EB=8B=A4=EB=A9=B4: - - my_data =3D value; - event_indicated =3D 1; - wake_up(&event_wait_queue); - -event_indecated =EC=97=90=EC=9D=98 =EB=B3=80=EA=B2=BD=EC=9D=B4 =EC=9E=A0= =EC=9E=AC=EC=9A=B0=EB=8A=94 =EC=BD=94=EB=93=9C=EC=97=90=EA=B2=8C my_data = =EC=97=90=EC=9D=98 =EB=B3=80=EA=B2=BD =ED=9B=84=EC=97=90 =EC=9D=B4=EB=A3=A8= =EC=96=B4=EC=A7=84 -=EA=B2=83=EC=9C=BC=EB=A1=9C =EC=9D=B8=EC=A7=80=EB=90=A0 =EA=B2=83=EC=9D=B4= =EB=9D=BC=EB=8A=94 =EB=B3=B4=EC=9E=A5=EC=9D=B4 =EC=97=86=EC=8A=B5=EB=8B=88= =EB=8B=A4. =EC=9D=B4=EB=9F=B0 =EA=B2=BD=EC=9A=B0=EC=97=90=EB=8A=94 =EC=96= =91=EC=AA=BD =EC=BD=94=EB=93=9C =EB=AA=A8=EB=91=90 =EA=B0=81=EA=B0=81=EC=9D= =98 -=EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=95=A1=EC=84=B8=EC=8A=A4 =EC=82=AC=EC=9D=B4= =EC=97=90 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC = =EC=A7=81=EC=A0=91 =EC=B3=90=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4. =EB=94= =B0=EB=9D=BC=EC=84=9C =EC=95=9E=EC=9D=98 =EC=9E=AC=EC=9A=B0=EB=8A=94 -=EC=BD=94=EB=93=9C=EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4: - - set_current_state(TASK_INTERRUPTIBLE); - if (event_indicated) { - smp_rmb(); - do_something(my_data); - } - -=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EA=B9=A8=EC=9A=B0=EB=8A=94 =EC=BD=94=EB=93=9C= =EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =EB=90=98=EC=96=B4= =EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4: - - my_data =3D value; - smp_wmb(); - event_indicated =3D 1; - wake_up(&event_wait_queue); - - -=EA=B7=B8=EC=99=B8=EC=9D=98 =ED=95=A8=EC=88=98=EB=93=A4 -------------- - -=EA=B7=B8=EC=99=B8=EC=9D=98 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4= =ED=8F=AC=ED=95=98=EB=8A=94 =ED=95=A8=EC=88=98=EB=93=A4=EC=9D=80 =EB=8B=A4= =EC=9D=8C=EA=B3=BC =EA=B0=99=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (*) schedule() =EA=B3=BC =EA=B7=B8 =EC=9C=A0=EC=82=AC=ED=95=9C =EA=B2=83= =EB=93=A4=EC=9D=B4 =EC=99=84=EC=A0=84=ED=95=9C =EB=A9=94=EB=AA=A8=EB=A6=AC = =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EB=82=B4=ED=8F=AC=ED=95=A9=EB=8B=88= =EB=8B=A4. - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D -CPU =EA=B0=84 ACQUIRING =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 =ED=9A=A8=EA= =B3=BC -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D - -SMP =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84=9C=EC=9D=98 =EB=9D=BD =EA= =B8=B0=EB=8A=A5=EB=93=A4=EC=9D=80 =EB=8D=94=EC=9A=B1 =EA=B0=95=EB=A0=A5=ED= =95=9C =ED=98=95=ED=83=9C=EC=9D=98 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC= =A0=9C=EA=B3=B5=ED=95=A9=EB=8B=88=EB=8B=A4: =EC=9D=B4 -=EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=8F=99=EC=9D=BC=ED=95=9C =EB=9D=BD= =EC=9D=84 =EC=82=AC=EC=9A=A9=ED=95=98=EB=8A=94 =EB=8B=A4=EB=A5=B8 CPU =EB= =93=A4=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4 =EC= =88=9C=EC=84=9C=EC=97=90=EB=8F=84 =EC=98=81=ED=96=A5=EC=9D=84 -=EB=81=BC=EC=B9=A9=EB=8B=88=EB=8B=A4. - - -ACQUIRE VS =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4 ------------------------- - -=EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=98=88=EB=A5=BC =EC=83=9D=EA=B0=81=ED=95=B4= =EB=B4=85=EC=8B=9C=EB=8B=A4: =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=80 =EB=91= =90=EA=B0=9C=EC=9D=98 =EC=8A=A4=ED=95=80=EB=9D=BD (M) =EA=B3=BC (Q), =EA=B7= =B8=EB=A6=AC=EA=B3=A0 =EC=84=B8=EA=B0=9C=EC=9D=98 CPU -=EB=A5=BC =EA=B0=80=EC=A7=80=EA=B3=A0 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4= ; =EC=97=AC=EA=B8=B0=EC=97=90 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=9D=B4=EB=B2= =A4=ED=8A=B8 =EC=8B=9C=ED=80=80=EC=8A=A4=EA=B0=80 =EB=B0=9C=EC=83=9D=ED=95= =A9=EB=8B=88=EB=8B=A4: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - WRITE_ONCE(*A, a); WRITE_ONCE(*E, e); - ACQUIRE M ACQUIRE Q - WRITE_ONCE(*B, b); WRITE_ONCE(*F, f); - WRITE_ONCE(*C, c); WRITE_ONCE(*G, g); - RELEASE M RELEASE Q - WRITE_ONCE(*D, d); WRITE_ONCE(*H, h); - -*A =EB=A1=9C=EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=B6=80=ED=84=B0 *H =EB= =A1=9C=EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EA=B9=8C=EC=A7=80=EA=B0=80 =EC= =96=B4=EB=96=A4 =EC=88=9C=EC=84=9C=EB=A1=9C CPU 3 =EC=97=90=EA=B2=8C =EB=B3= =B4=EC=97=AC=EC=A7=88=EC=A7=80=EC=97=90 -=EB=8C=80=ED=95=B4=EC=84=9C=EB=8A=94 =EA=B0=81 CPU =EC=97=90=EC=84=9C=EC= =9D=98 =EB=9D=BD =EC=82=AC=EC=9A=A9=EC=97=90 =EC=9D=98=ED=95=B4 =EB=82=B4= =ED=8F=AC=EB=90=98=EC=96=B4 =EC=9E=88=EB=8A=94 =EC=A0=9C=EC=95=BD=EC=9D=84 = =EC=A0=9C=EC=99=B8=ED=95=98=EA=B3=A0=EB=8A=94 =EC=96=B4=EB=96=A4 -=EB=B3=B4=EC=9E=A5=EB=8F=84 =EC=A1=B4=EC=9E=AC=ED=95=98=EC=A7=80 =EC=95=8A= =EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, CPU 3 = =EC=97=90=EA=B2=8C =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EC=88=9C= =EC=84=9C=EB=A1=9C =EB=B3=B4=EC=97=AC=EC=A7=80=EB=8A=94 -=EA=B2=83=EC=9D=B4 =EA=B0=80=EB=8A=A5=ED=95=A9=EB=8B=88=EB=8B=A4: - - *E, ACQUIRE M, ACQUIRE Q, *G, *C, *F, *A, *B, RELEASE Q, *D, *H, RELEASE M - -=ED=95=98=EC=A7=80=EB=A7=8C =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4= =EB=B3=B4=EC=9D=B4=EC=A7=80=EB=8A=94 =EC=95=8A=EC=9D=84 =EA=B2=81=EB=8B=88= =EB=8B=A4: - - *B, *C or *D preceding ACQUIRE M - *A, *B or *C following RELEASE M - *F, *G or *H preceding ACQUIRE Q - *E, *F or *G following RELEASE Q - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =ED=95=84= =EC=9A=94=ED=95=9C =EA=B3=B3 -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D - -=EC=84=A4=EB=A0=B9 SMP =EC=BB=A4=EB=84=90=EC=9D=84 =EC=82=AC=EC=9A=A9=ED= =95=98=EB=8D=94=EB=9D=BC=EB=8F=84 =EC=8B=B1=EA=B8=80 =EC=93=B0=EB=A0=88=EB= =93=9C=EB=A1=9C =EB=8F=99=EC=9E=91=ED=95=98=EB=8A=94 =EC=BD=94=EB=93=9C=EB= =8A=94 =EC=98=AC=EB=B0=94=EB=A5=B4=EA=B2=8C =EB=8F=99=EC=9E=91=ED=95=98=EB= =8A=94 -=EA=B2=83=EC=9C=BC=EB=A1=9C =EB=B3=B4=EC=97=AC=EC=A7=88 =EA=B2=83=EC=9D=B4= =EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90, =ED=8F=89=EB=B2=94=ED=95=9C =EC=8B= =9C=EC=8A=A4=ED=85=9C =EC=9A=B4=EC=98=81=EC=A4=91=EC=97=90 =EB=A9=94=EB=AA= =A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EC=9E=AC=EB=B0= =B0=EC=B9=98=EB=8A=94 -=EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C =EB=AC=B8=EC=A0=9C=EA=B0=80 = =EB=90=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. =ED=95=98=EC=A7= =80=EB=A7=8C, =EC=9E=AC=EB=B0=B0=EC=B9=98=EA=B0=80 =EB=AC=B8=EC=A0=9C=EA=B0= =80 _=EB=90=A0 =EC=88=98 =EC=9E=88=EB=8A=94_ =EB=84=A4=EA=B0=80=EC=A7=80 -=ED=99=98=EA=B2=BD=EC=9D=B4 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - (*) =ED=94=84=EB=A1=9C=EC=84=B8=EC=84=9C=EA=B0=84 =EC=83=81=ED=98=B8 =EC= =9E=91=EC=9A=A9. - - (*) =EC=96=B4=ED=86=A0=EB=AF=B9 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC= =85=98. - - (*) =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4 =EC=95=A1=EC=84=B8=EC=8A=A4. - - (*) =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8. - - -=ED=94=84=EB=A1=9C=EC=84=B8=EC=84=9C=EA=B0=84 =EC=83=81=ED=98=B8 =EC=9E=91= =EC=9A=A9 --------------------- - -=EB=91=90=EA=B0=9C =EC=9D=B4=EC=83=81=EC=9D=98 =ED=94=84=EB=A1=9C=EC=84=B8= =EC=84=9C=EB=A5=BC =EA=B0=80=EC=A7=84 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=B4 = =EC=9E=88=EB=8B=A4=EB=A9=B4, =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB=91=90= =EA=B0=9C =EC=9D=B4=EC=83=81=EC=9D=98 CPU =EB=8A=94 =EB=8F=99=EC=8B=9C=EC= =97=90 -=EA=B0=99=EC=9D=80 =EB=8D=B0=EC=9D=B4=ED=84=B0=EC=97=90 =EB=8C=80=ED=95=9C= =EC=9E=91=EC=97=85=EC=9D=84 =ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B= =88=EB=8B=A4. =EC=9D=B4=EB=8A=94 =EB=8F=99=EA=B8=B0=ED=99=94 =EB=AC=B8=EC= =A0=9C=EB=A5=BC =EC=9D=BC=EC=9C=BC=ED=82=AC =EC=88=98 =EC=9E=88=EA=B3=A0, -=EC=9D=B4 =EB=AC=B8=EC=A0=9C=EB=A5=BC =ED=95=B4=EA=B2=B0=ED=95=98=EB=8A=94= =EC=9D=BC=EB=B0=98=EC=A0=81 =EB=B0=A9=EB=B2=95=EC=9D=80 =EB=9D=BD=EC=9D=84= =EC=82=AC=EC=9A=A9=ED=95=98=EB=8A=94 =EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4.= =ED=95=98=EC=A7=80=EB=A7=8C, =EB=9D=BD=EC=9D=80 =EC=83=81=EB=8B=B9=ED=9E= =88 -=EB=B9=84=EC=9A=A9=EC=9D=B4 =EB=B9=84=EC=8B=B8=EC=84=9C =EA=B0=80=EB=8A=A5= =ED=95=98=EB=A9=B4 =EB=9D=BD=EC=9D=84 =EC=82=AC=EC=9A=A9=ED=95=98=EC=A7=80 = =EC=95=8A=EA=B3=A0 =EC=9D=BC=EC=9D=84 =EC=B2=98=EB=A6=AC=ED=95=98=EB=8A=94 = =EA=B2=83=EC=9D=B4 =EB=82=AB=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EB=9F= =B0 -=EA=B2=BD=EC=9A=B0, =EB=91=90 CPU =EB=AA=A8=EB=91=90=EC=97=90 =EC=98=81=ED= =96=A5=EC=9D=84 =EB=81=BC=EC=B9=98=EB=8A=94 =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EB=93=A4=EC=9D=80 =EC=98=A4=EB=8F=99=EC=9E=91=EC=9D=84 =EB= =A7=89=EA=B8=B0 =EC=9C=84=ED=95=B4 =EC=8B=A0=EC=A4=91=ED=95=98=EA=B2=8C -=EC=88=9C=EC=84=9C=EA=B0=80 =EB=A7=9E=EC=B6=B0=EC=A0=B8=EC=95=BC =ED=95=A9= =EB=8B=88=EB=8B=A4. - -=EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, R/W =EC=84=B8=EB=A7=88=ED=8F=AC=EC= =96=B4=EC=9D=98 =EB=8A=90=EB=A6=B0 =EC=88=98=ED=96=89=EA=B2=BD=EB=A1=9C (sl= ow path) =EB=A5=BC =EC=83=9D=EA=B0=81=ED=95=B4 =EB=B4=85=EC=8B=9C=EB=8B=A4. -=EC=84=B8=EB=A7=88=ED=8F=AC=EC=96=B4=EB=A5=BC =EC=9C=84=ED=95=B4 =EB=8C=80= =EA=B8=B0=EB=A5=BC =ED=95=98=EB=8A=94 =ED=95=98=EB=82=98=EC=9D=98 =ED=94=84= =EB=A1=9C=EC=84=B8=EC=8A=A4=EA=B0=80 =EC=9E=90=EC=8B=A0=EC=9D=98 =EC=8A=A4= =ED=83=9D =EC=A4=91 =EC=9D=BC=EB=B6=80=EB=A5=BC =EC=9D=B4 -=EC=84=B8=EB=A7=88=ED=8F=AC=EC=96=B4=EC=9D=98 =EB=8C=80=EA=B8=B0 =ED=94=84= =EB=A1=9C=EC=84=B8=EC=8A=A4 =EB=A6=AC=EC=8A=A4=ED=8A=B8=EC=97=90 =EB=A7=81= =ED=81=AC=ED=95=9C =EC=B1=84=EB=A1=9C =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - struct rw_semaphore { - ... - spinlock_t lock; - struct list_head waiters; - }; - - struct rwsem_waiter { - struct list_head list; - struct task_struct *task; - }; - -=ED=8A=B9=EC=A0=95 =EB=8C=80=EA=B8=B0 =EC=83=81=ED=83=9C =ED=94=84=EB=A1= =9C=EC=84=B8=EC=8A=A4=EB=A5=BC =EA=B9=A8=EC=9A=B0=EA=B8=B0 =EC=9C=84=ED=95= =B4, up_read() =EB=82=98 up_write() =ED=95=A8=EC=88=98=EB=8A=94 =EB=8B=A4= =EC=9D=8C=EA=B3=BC -=EA=B0=99=EC=9D=80 =EC=9D=BC=EC=9D=84 =ED=95=A9=EB=8B=88=EB=8B=A4: - - (1) =EB=8B=A4=EC=9D=8C =EB=8C=80=EA=B8=B0 =EC=83=81=ED=83=9C =ED=94=84=EB= =A1=9C=EC=84=B8=EC=8A=A4 =EB=A0=88=EC=BD=94=EB=93=9C=EB=8A=94 =EC=96=B4=EB= =94=94=EC=9E=88=EB=8A=94=EC=A7=80 =EC=95=8C=EA=B8=B0 =EC=9C=84=ED=95=B4 =EC= =9D=B4 =EB=8C=80=EA=B8=B0 =EC=83=81=ED=83=9C - =ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4 =EB=A0=88=EC=BD=94=EB=93=9C=EC= =9D=98 next =ED=8F=AC=EC=9D=B8=ED=84=B0=EB=A5=BC =EC=9D=BD=EC=8A=B5=EB=8B= =88=EB=8B=A4; - - (2) =EC=9D=B4 =EB=8C=80=EA=B8=B0 =EC=83=81=ED=83=9C =ED=94=84=EB=A1=9C=EC= =84=B8=EC=8A=A4=EC=9D=98 task =EA=B5=AC=EC=A1=B0=EC=B2=B4=EB=A1=9C=EC=9D=98= =ED=8F=AC=EC=9D=B8=ED=84=B0=EB=A5=BC =EC=9D=BD=EC=8A=B5=EB=8B=88=EB=8B=A4; - - (3) =EC=9D=B4 =EB=8C=80=EA=B8=B0 =EC=83=81=ED=83=9C =ED=94=84=EB=A1=9C=EC= =84=B8=EC=8A=A4=EA=B0=80 =EC=84=B8=EB=A7=88=ED=8F=AC=EC=96=B4=EB=A5=BC =ED= =9A=8D=EB=93=9D=ED=96=88=EC=9D=8C=EC=9D=84 =EC=95=8C=EB=A6=AC=EA=B8=B0 =EC= =9C=84=ED=95=B4 task - =ED=8F=AC=EC=9D=B8=ED=84=B0=EB=A5=BC =EC=B4=88=EA=B8=B0=ED=99=94 =ED= =95=A9=EB=8B=88=EB=8B=A4; - - (4) =ED=95=B4=EB=8B=B9 =ED=83=9C=EC=8A=A4=ED=81=AC=EC=97=90 =EB=8C=80=ED= =95=B4 wake_up_process() =EB=A5=BC =ED=98=B8=EC=B6=9C=ED=95=A9=EB=8B=88=EB= =8B=A4; =EA=B7=B8=EB=A6=AC=EA=B3=A0 - - (5) =ED=95=B4=EB=8B=B9 =EB=8C=80=EA=B8=B0 =EC=83=81=ED=83=9C =ED=94=84=EB= =A1=9C=EC=84=B8=EC=8A=A4=EC=9D=98 task =EA=B5=AC=EC=A1=B0=EC=B2=B4=EB=A5=BC= =EC=9E=A1=EA=B3=A0 =EC=9E=88=EB=8D=98 =EB=A0=88=ED=8D=BC=EB=9F=B0=EC=8A=A4= =EB=A5=BC =ED=95=B4=EC=A0=9C=ED=95=A9=EB=8B=88=EB=8B=A4. - -=EB=8B=AC=EB=A6=AC =EB=A7=90=ED=95=98=EC=9E=90=EB=A9=B4, =EB=8B=A4=EC=9D= =8C =EC=9D=B4=EB=B2=A4=ED=8A=B8 =EC=8B=9C=ED=80=80=EC=8A=A4=EB=A5=BC =EC=88= =98=ED=96=89=ED=95=B4=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4: - - LOAD waiter->list.next; - LOAD waiter->task; - STORE waiter->task; - CALL wakeup - RELEASE task - -=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EC=9D=B4 =EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=93=A4= =EC=9D=B4 =EB=8B=A4=EB=A5=B8 =EC=88=9C=EC=84=9C=EB=A1=9C =EC=88=98=ED=96=89= =EB=90=9C=EB=8B=A4=EB=A9=B4, =EC=98=A4=EB=8F=99=EC=9E=91=EC=9D=B4 =EC=9D=BC= =EC=96=B4=EB=82=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=ED=95=9C=EB=B2=88 =EC=84=B8=EB=A7=88=ED=8F=AC=EC=96=B4=EC=9D=98 =EB=8C=80= =EA=B8=B0=EC=A4=84=EC=97=90 =EB=93=A4=EC=96=B4=EA=B0=94=EA=B3=A0 =EC=84=B8= =EB=A7=88=ED=8F=AC=EC=96=B4 =EB=9D=BD=EC=9D=84 =EB=86=93=EC=95=98=EB=8B=A4= =EB=A9=B4, =ED=95=B4=EB=8B=B9 =EB=8C=80=EA=B8=B0 =ED=94=84=EB=A1=9C=EC=84= =B8=EC=8A=A4=EB=8A=94 -=EB=9D=BD=EC=9D=84 =EB=8B=A4=EC=8B=9C=EB=8A=94 =EC=9E=A1=EC=A7=80 =EC=95= =8A=EC=8A=B5=EB=8B=88=EB=8B=A4; =EB=8C=80=EC=8B=A0 =EC=9E=90=EC=8B=A0=EC=9D= =98 task =ED=8F=AC=EC=9D=B8=ED=84=B0=EA=B0=80 =EC=B4=88=EA=B8=B0=ED=99=94 = =EB=90=98=EA=B8=B8 =EA=B8=B0=EB=8B=A4=EB=A6=BD=EB=8B=88=EB=8B=A4. -=EA=B7=B8 =EB=A0=88=EC=BD=94=EB=93=9C=EB=8A=94 =EB=8C=80=EA=B8=B0 =ED=94= =84=EB=A1=9C=EC=84=B8=EC=8A=A4=EC=9D=98 =EC=8A=A4=ED=83=9D=EC=97=90 =EC=9E= =88=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90, =EB=A6=AC=EC=8A=A4=ED=8A=B8=EC=9D= =98 next =ED=8F=AC=EC=9D=B8=ED=84=B0=EA=B0=80 =EC=9D=BD=ED=98=80=EC=A7=80= =EA=B8=B0 -_=EC=A0=84=EC=97=90_ task =ED=8F=AC=EC=9D=B8=ED=84=B0=EA=B0=80 =EC=A7=80= =EC=9B=8C=EC=A7=84=EB=8B=A4=EB=A9=B4, =EB=8B=A4=EB=A5=B8 CPU =EB=8A=94 =ED= =95=B4=EB=8B=B9 =EB=8C=80=EA=B8=B0 =ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=EB= =A5=BC =EC=8B=9C=EC=9E=91=ED=95=B4 =EB=B2=84=EB=A6=AC=EA=B3=A0 -up*() =ED=95=A8=EC=88=98=EA=B0=80 next =ED=8F=AC=EC=9D=B8=ED=84=B0=EB=A5= =BC =EC=9D=BD=EA=B8=B0 =EC=A0=84=EC=97=90 =EB=8C=80=EA=B8=B0 =ED=94=84=EB= =A1=9C=EC=84=B8=EC=8A=A4=EC=9D=98 =EC=8A=A4=ED=83=9D=EC=9D=84 =EB=A7=88=EA= =B5=AC =EA=B1=B4=EB=93=9C=EB=A6=B4 =EC=88=98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EA=B7=B8=EB=A0=87=EA=B2=8C =EB=90=98=EB=A9=B4 =EC=9C=84=EC=9D=98 =EC=9D= =B4=EB=B2=A4=ED=8A=B8 =EC=8B=9C=ED=80=80=EC=8A=A4=EC=97=90 =EC=96=B4=EB=96= =A4 =EC=9D=BC=EC=9D=B4 =EC=9D=BC=EC=96=B4=EB=82=98=EB=8A=94=EC=A7=80 =EC=83= =9D=EA=B0=81=ED=95=B4 =EB=B3=B4=EC=A3=A0: - - CPU 1 CPU 2 - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - down_xxx() - Queue waiter - Sleep - up_yyy() - LOAD waiter->task; - STORE waiter->task; - Woken up by other event - - Resume processing - down_xxx() returns - call foo() - foo() clobbers *waiter - - LOAD waiter->list.next; - --- OOPS --- - -=EC=9D=B4 =EB=AC=B8=EC=A0=9C=EB=8A=94 =EC=84=B8=EB=A7=88=ED=8F=AC=EC=96=B4= =EB=9D=BD=EC=9D=98 =EC=82=AC=EC=9A=A9=EC=9C=BC=EB=A1=9C =ED=95=B4=EA=B2=B0= =EB=90=A0 =EC=88=98=EB=8F=84 =EC=9E=88=EA=B2=A0=EC=A7=80=EB=A7=8C, =EA=B7= =B8=EB=A0=87=EA=B2=8C =EB=90=98=EB=A9=B4 =EA=B9=A8=EC=96=B4=EB=82=9C =ED=9B= =84=EC=97=90 -down_xxx() =ED=95=A8=EC=88=98=EA=B0=80 =EB=B6=88=ED=95=84=EC=9A=94=ED=95= =98=EA=B2=8C =EC=8A=A4=ED=95=80=EB=9D=BD=EC=9D=84 =EB=98=90=EB=8B=A4=EC=8B= =9C =EC=96=BB=EC=96=B4=EC=95=BC=EB=A7=8C =ED=95=A9=EB=8B=88=EB=8B=A4. - -=EC=9D=B4 =EB=AC=B8=EC=A0=9C=EB=A5=BC =ED=95=B4=EA=B2=B0=ED=95=98=EB=8A=94= =EB=B0=A9=EB=B2=95=EC=9D=80 =EB=B2=94=EC=9A=A9 SMP =EB=A9=94=EB=AA=A8=EB= =A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=B6=94=EA=B0=80=ED=95=98=EB= =8A=94 =EA=B2=81=EB=8B=88=EB=8B=A4: - - LOAD waiter->list.next; - LOAD waiter->task; - smp_mb(); - STORE waiter->task; - CALL wakeup - RELEASE task - -=EC=9D=B4 =EA=B2=BD=EC=9A=B0=EC=97=90, =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A= =94 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB=82=98=EB=A8=B8=EC=A7=80 CPU = =EB=93=A4=EC=97=90=EA=B2=8C =EB=AA=A8=EB=93=A0 =EB=B0=B0=EB=A6=AC=EC=96=B4 = =EC=95=9E=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4= =EA=B0=80 -=EB=B0=B0=EB=A6=AC=EC=96=B4 =EB=92=A4=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC= =EC=95=A1=EC=84=B8=EC=8A=A4=EB=B3=B4=EB=8B=A4 =EC=95=9E=EC=84=9C =EC=9D=BC= =EC=96=B4=EB=82=9C =EA=B2=83=EC=9C=BC=EB=A1=9C =EB=B3=B4=EC=9D=B4=EA=B2=8C = =EB=A7=8C=EB=93=AD=EB=8B=88=EB=8B=A4. =EB=B0=B0=EB=A6=AC=EC=96=B4 =EC=95= =9E=EC=9D=98 -=EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=B4 = =EB=B0=B0=EB=A6=AC=EC=96=B4 =EB=AA=85=EB=A0=B9 =EC=9E=90=EC=B2=B4=EA=B0=80 = =EC=99=84=EB=A3=8C=EB=90=98=EB=8A=94 =EC=8B=9C=EC=A0=90=EA=B9=8C=EC=A7=80 = =EC=99=84=EB=A3=8C=EB=90=9C=EB=8B=A4=EA=B3=A0=EB=8A=94 =EB=B3=B4=EC=9E=A5= =ED=95=98=EC=A7=80 -_=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4_. - -(=EC=9D=B4=EA=B2=8C =EB=AC=B8=EC=A0=9C=EA=B0=80 =EB=90=98=EC=A7=80 =EC=95= =8A=EC=9D=84) =EB=8B=A8=EC=9D=BC =ED=94=84=EB=A1=9C=EC=84=B8=EC=84=9C =EC= =8B=9C=EC=8A=A4=ED=85=9C=EC=97=90=EC=84=9C smp_mb() =EB=8A=94 =EC=8B=A4=EC= =A0=9C=EB=A1=9C=EB=8A=94 =EA=B7=B8=EC=A0=80 -=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EA=B0=80 CPU =EC=95=88=EC=97=90=EC=84= =9C=EC=9D=98 =EC=88=9C=EC=84=9C=EB=A5=BC =EB=B0=94=EA=BE=B8=EA=B1=B0=EB=82= =98 =ED=95=98=EC=A7=80 =EC=95=8A=EA=B3=A0 =EC=A3=BC=EC=96=B4=EC=A7=84 =EC= =88=9C=EC=84=9C=EB=8C=80=EB=A1=9C =EB=AA=85=EB=A0=B9=EC=9D=84 -=EB=82=B4=EB=A6=AC=EB=8F=84=EB=A1=9D =ED=95=98=EB=8A=94 =EC=BB=B4=ED=8C=8C= =EC=9D=BC=EB=9F=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=BC =EB=BF=90=EC=9E=85= =EB=8B=88=EB=8B=A4. =EC=98=A4=EC=A7=81 =ED=95=98=EB=82=98=EC=9D=98 CPU =EB= =A7=8C =EC=9E=88=EC=9C=BC=EB=8B=88, CPU =EC=9D=98 -=EC=9D=98=EC=A1=B4=EC=84=B1 =EC=88=9C=EC=84=9C =EB=A1=9C=EC=A7=81=EC=9D=B4= =EA=B7=B8 =EC=99=B8=EC=9D=98 =EB=AA=A8=EB=93=A0=EA=B2=83=EC=9D=84 =EC=95= =8C=EC=95=84=EC=84=9C =EC=B2=98=EB=A6=AC=ED=95=A0 =EA=B2=81=EB=8B=88=EB=8B= =A4. - - -=EC=96=B4=ED=86=A0=EB=AF=B9 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 ------------------ - -=EC=96=B4=ED=86=A0=EB=AF=B9 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EC=9D=80 =EA=B8=B0=EC=88=A0=EC=A0=81=EC=9C=BC=EB=A1=9C =ED=94=84=EB=A1=9C= =EC=84=B8=EC=84=9C=EA=B0=84 =EC=83=81=ED=98=B8=EC=9E=91=EC=9A=A9=EC=9C=BC= =EB=A1=9C =EB=B6=84=EB=A5=98=EB=90=98=EB=A9=B0 =EA=B7=B8 =EC=A4=91 =EC=9D= =BC=EB=B6=80=EB=8A=94 -=EC=A0=84=EC=B2=B4 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4= =EB=A5=BC =EB=82=B4=ED=8F=AC=ED=95=98=EA=B3=A0 =EB=98=90 =EC=9D=BC=EB=B6=80= =EB=8A=94 =EB=82=B4=ED=8F=AC=ED=95=98=EC=A7=80 =EC=95=8A=EC=A7=80=EB=A7=8C,= =EC=BB=A4=EB=84=90=EC=97=90=EC=84=9C =EC=83=81=EB=8B=B9=ED=9E=88 -=EC=9D=98=EC=A1=B4=EC=A0=81=EC=9C=BC=EB=A1=9C =EC=82=AC=EC=9A=A9=ED=95=98= =EB=8A=94 =EA=B8=B0=EB=8A=A5 =EC=A4=91 =ED=95=98=EB=82=98=EC=9E=85=EB=8B=88= =EB=8B=A4. - -=EB=8D=94 =EB=A7=8E=EC=9D=80 =EB=82=B4=EC=9A=A9=EC=9D=84 =EC=9C=84=ED=95= =B4=EC=84=A0 Documentation/atomic_t.txt =EB=A5=BC =EC=B0=B8=EA=B3=A0=ED=95= =98=EC=84=B8=EC=9A=94. - - -=EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4 =EC=95=A1=EC=84=B8=EC=8A=A4 ---------------- - -=EB=A7=8E=EC=9D=80 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EA=B0=80 =EB=A9=94= =EB=AA=A8=EB=A6=AC =EB=A7=A4=ED=95=91 =EA=B8=B0=EB=B2=95=EC=9C=BC=EB=A1=9C = =EC=A0=9C=EC=96=B4=EB=90=A0 =EC=88=98 =EC=9E=88=EB=8A=94=EB=8D=B0, =EA=B7= =B8=EB=A0=87=EA=B2=8C =EC=A0=9C=EC=96=B4=EB=90=98=EB=8A=94 -=EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EB=8A=94 CPU =EC=97=90=EB=8A=94 =EB= =8B=A8=EC=A7=80 =ED=8A=B9=EC=A0=95 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=81=EC= =97=AD=EC=9D=98 =EC=A7=91=ED=95=A9=EC=B2=98=EB=9F=BC =EB=B3=B4=EC=9D=B4=EA= =B2=8C =EB=90=A9=EB=8B=88=EB=8B=A4. =EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84= =EB=8A=94 -=EA=B7=B8=EB=9F=B0 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EB=A5=BC =EC=A0=9C= =EC=96=B4=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4 =EC=A0=95=ED=99=95=ED=9E=88 = =EC=98=AC=EB=B0=94=EB=A5=B8 =EC=88=9C=EC=84=9C=EB=A1=9C =EC=98=AC=EB=B0=94= =EB=A5=B8 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4=EB=A5=BC -=EB=A7=8C=EB=93=A4=EC=96=B4=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4. - -=ED=95=98=EC=A7=80=EB=A7=8C, =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=84= =EC=9E=AC=EB=B0=B0=EC=B9=98 =ED=95=98=EA=B1=B0=EB=82=98 =EC=A1=B0=ED=95=A9= =ED=95=98=EA=B1=B0=EB=82=98 =EB=B3=91=ED=95=A9=ED=95=98=EB=8A=94=EA=B2=8C = =EB=8D=94 =ED=9A=A8=EC=9C=A8=EC=A0=81=EC=9D=B4=EB=9D=BC =ED=8C=90=EB=8B=A8= =ED=95=98=EB=8A=94 -=EC=98=81=EB=A6=AC=ED=95=9C CPU =EB=82=98 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB= =9F=AC=EB=93=A4=EC=9D=84 =EC=82=AC=EC=9A=A9=ED=95=98=EB=A9=B4 =EB=93=9C=EB= =9D=BC=EC=9D=B4=EB=B2=84 =EC=BD=94=EB=93=9C=EC=9D=98 =EC=A1=B0=EC=8B=AC=EC= =8A=A4=EB=9F=BD=EA=B2=8C =EC=88=9C=EC=84=9C =EB=A7=9E=EC=B6=B0=EC=A7=84 -=EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=B4 =EB=94=94=EB=B0=94=EC=9D=B4= =EC=8A=A4=EC=97=90=EB=8A=94 =EC=9A=94=EC=B2=AD=EB=90=9C =EC=88=9C=EC=84=9C= =EB=8C=80=EB=A1=9C =EB=8F=84=EC=B0=A9=ED=95=98=EC=A7=80 =EB=AA=BB=ED=95=98= =EA=B2=8C =ED=95=A0 =EC=88=98 =EC=9E=88=EB=8A=94 - =EB=94=94=EB=B0=94=EC=9D= =B4=EC=8A=A4=EA=B0=80 -=EC=98=A4=EB=8F=99=EC=9E=91=EC=9D=84 =ED=95=98=EA=B2=8C =ED=95=A0 - =EC=9E= =A0=EC=9E=AC=EC=A0=81 =EB=AC=B8=EC=A0=9C=EA=B0=80 =EC=83=9D=EA=B8=B8 =EC=88= =98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90 =EB=82=B4=EB=B6=80=EC=97=90= =EC=84=9C, I/O =EB=8A=94 =EC=96=B4=EB=96=BB=EA=B2=8C =EC=95=A1=EC=84=B8=EC= =8A=A4=EB=93=A4=EC=9D=84 =EC=A0=81=EC=A0=88=ED=9E=88 =EC=88=9C=EC=B0=A8=EC= =A0=81=EC=9D=B4=EA=B2=8C =EB=A7=8C=EB=93=A4 =EC=88=98 =EC=9E=88=EB=8A=94=EC= =A7=80 -=EC=95=8C=EA=B3=A0 =EC=9E=88=EB=8A=94, - inb() =EB=82=98 writel() =EA=B3= =BC =EA=B0=99=EC=9D=80 - =EC=A0=81=EC=A0=88=ED=95=9C =EC=95=A1=EC=84=B8=EC= =8A=A4 =EB=A3=A8=ED=8B=B4=EC=9D=84 =ED=86=B5=ED=95=B4 =EC=9D=B4=EB=A3=A8=EC= =96=B4=EC=A0=B8=EC=95=BC=EB=A7=8C -=ED=95=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 =EB=8C= =80=EB=B6=80=EB=B6=84=EC=9D=98 =EA=B2=BD=EC=9A=B0=EC=97=90=EB=8A=94 =EB=AA= =85=EC=8B=9C=EC=A0=81 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96= =B4 =EC=99=80 =ED=95=A8=EA=BB=98 =EC=82=AC=EC=9A=A9=EB=90=A0 =ED=95=84=EC= =9A=94=EA=B0=80 -=EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4=EB=A7=8C, =EC=99=84=ED=99=94=EB=90=9C= =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4 =EC=86=8D=EC=84=B1= =EC=9C=BC=EB=A1=9C I/O =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=9C=88=EB=8F=84=EC=9A= =B0=EB=A1=9C=EC=9D=98 =EC=B0=B8=EC=A1=B0=EB=A5=BC =EC=9C=84=ED=95=B4 -=EC=95=A1=EC=84=B8=EC=8A=A4 =ED=95=A8=EC=88=98=EA=B0=80 =EC=82=AC=EC=9A=A9= =EB=90=9C=EB=8B=A4=EB=A9=B4 =EC=88=9C=EC=84=9C=EB=A5=BC =EA=B0=95=EC=A0=9C= =ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4 _mandatory_ =EB=A9=94=EB=AA=A8=EB=A6= =AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 -=ED=95=84=EC=9A=94=ED=95=A9=EB=8B=88=EB=8B=A4. - -=EB=8D=94 =EB=A7=8E=EC=9D=80 =EC=A0=95=EB=B3=B4=EB=A5=BC =EC=9C=84=ED=95= =B4=EC=84=A0 Documentation/driver-api/device-io.rst =EB=A5=BC =EC=B0=B8=EA= =B3=A0=ED=95=98=EC=8B=AD=EC=8B=9C=EC=98=A4. - - -=EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 --------- - -=EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84=EB=8A=94 =EC=9E=90=EC=8B=A0=EC=9D=98 = =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =EC=84=9C=EB=B9=84=EC=8A=A4 =EB=A3=A8= =ED=8B=B4=EC=97=90 =EC=9D=98=ED=95=B4 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 = =EB=8B=B9=ED=95=A0 =EC=88=98 =EC=9E=88=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 -=EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84=EC=9D=98 =EC=9D=B4 =EB=91=90 =EB=B6= =80=EB=B6=84=EC=9D=80 =EC=84=9C=EB=A1=9C=EC=9D=98 =EB=94=94=EB=B0=94=EC=9D= =B4=EC=8A=A4 =EC=A0=9C=EC=96=B4 =EB=98=90=EB=8A=94 =EC=95=A1=EC=84=B8=EC=8A= =A4 =EB=B6=80=EB=B6=84=EA=B3=BC =EC=83=81=ED=98=B8 =EA=B0=84=EC=84=AD=ED=95= =A0 =EC=88=98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EC=8A=A4=EC=8A=A4=EB=A1=9C=EC=97=90=EA=B2=8C =EC=9D=B8=ED=84=B0=EB=9F=BD= =ED=8A=B8 =EB=8B=B9=ED=95=98=EB=8A=94 =EA=B1=B8 =EB=B6=88=EA=B0=80=EB=8A=A5= =ED=95=98=EA=B2=8C =ED=95=98=EA=B3=A0, =EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84= =EC=9D=98 =ED=81=AC=EB=A6=AC=ED=8B=B0=EC=BB=AC=ED=95=9C -=EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84 =EB=AA=A8= =EB=91=90 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8=EA=B0=80 =EB=B6=88=EA=B0=80= =EB=8A=A5=ED=95=98=EA=B2=8C =EB=90=9C =EC=98=81=EC=97=AD=EC=97=90 =EC=A7=91= =EC=96=B4=EB=84=A3=EA=B1=B0=EB=82=98 =ED=95=98=EB=8A=94 =EB=B0=A9=EB=B2=95 = (=EB=9D=BD=EC=9D=98 -=ED=95=9C =ED=98=95=ED=83=9C) =EC=9C=BC=EB=A1=9C =EC=9D=B4=EB=9F=B0 =EC=83= =81=ED=98=B8 =EA=B0=84=EC=84=AD=EC=9D=84 - =EC=B5=9C=EC=86=8C=ED=95=9C =EB= =B6=80=EB=B6=84=EC=A0=81=EC=9C=BC=EB=A1=9C=EB=9D=BC=EB=8F=84 - =EC=A4=84=EC= =9D=BC =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. -=EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84=EC=9D=98 =EC=9D=B8=ED=84=B0=EB=9F=BD= =ED=8A=B8 =EB=A3=A8=ED=8B=B4=EC=9D=B4 =EC=8B=A4=ED=96=89 =EC=A4=91=EC=9D=B8= =EB=8F=99=EC=95=88, =ED=95=B4=EB=8B=B9 =EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2= =84=EC=9D=98 =EC=BD=94=EC=96=B4=EB=8A=94 =EA=B0=99=EC=9D=80 CPU =EC=97=90= =EC=84=9C -=EC=88=98=ED=96=89=EB=90=98=EC=A7=80 =EC=95=8A=EC=9D=84 =EA=B2=83=EC=9D=B4= =EB=A9=B0, =ED=98=84=EC=9E=AC=EC=9D=98 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8= =EA=B0=80 =EC=B2=98=EB=A6=AC=EB=90=98=EB=8A=94 =EC=A4=91=EC=97=90=EB=8A=94 = =EB=98=90=EB=8B=A4=EC=8B=9C =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8=EA=B0=80 -=EC=9D=BC=EC=96=B4=EB=82=98=EC=A7=80 =EB=AA=BB=ED=95=98=EB=8F=84=EB=A1=9D = =EB=90=98=EC=96=B4 =EC=9E=88=EC=9C=BC=EB=8B=88 =EC=9D=B8=ED=84=B0=EB=9F=BD= =ED=8A=B8 =ED=95=B8=EB=93=A4=EB=9F=AC=EB=8A=94 =EA=B7=B8=EC=97=90 =EB=8C=80= =ED=95=B4=EC=84=9C=EB=8A=94 =EB=9D=BD=EC=9D=84 =EC=9E=A1=EC=A7=80 =EC=95=8A= =EC=95=84=EB=8F=84 -=EB=90=A9=EB=8B=88=EB=8B=A4. - -=ED=95=98=EC=A7=80=EB=A7=8C, =EC=96=B4=EB=93=9C=EB=A0=88=EC=8A=A4 =EB=A0= =88=EC=A7=80=EC=8A=A4=ED=84=B0=EC=99=80 =EB=8D=B0=EC=9D=B4=ED=84=B0 =EB=A0= =88=EC=A7=80=EC=8A=A4=ED=84=B0=EB=A5=BC =EA=B0=96=EB=8A=94 =EC=9D=B4=EB=8D= =94=EB=84=B7 =EC=B9=B4=EB=93=9C=EB=A5=BC =EB=8B=A4=EB=A3=A8=EB=8A=94 -=EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84=EB=A5=BC =EC=83=9D=EA=B0=81=ED=95=B4 = =EB=B4=85=EC=8B=9C=EB=8B=A4. =EB=A7=8C=EC=95=BD =EC=9D=B4 =EB=93=9C=EB=9D= =BC=EC=9D=B4=EB=B2=84=EC=9D=98 =EC=BD=94=EC=96=B4=EA=B0=80 =EC=9D=B8=ED=84= =B0=EB=9F=BD=ED=8A=B8=EB=A5=BC =EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94=EC=8B= =9C=ED=82=A8 -=EC=B1=84=EB=A1=9C =EC=9D=B4=EB=8D=94=EB=84=B7 =EC=B9=B4=EB=93=9C=EC=99=80= =EB=8C=80=ED=99=94=ED=95=98=EA=B3=A0 =EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84= =EC=9D=98 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =ED=95=B8=EB=93=A4=EB=9F=AC= =EA=B0=80 =ED=98=B8=EC=B6=9C=EB=90=98=EC=97=88=EB=8B=A4=EB=A9=B4: - - LOCAL IRQ DISABLE - writew(ADDR, 3); - writew(DATA, y); - LOCAL IRQ ENABLE - - writew(ADDR, 4); - q =3D readw(DATA); - - -=EB=A7=8C=EC=95=BD =EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=B4 =EC=B6= =A9=EB=B6=84=ED=9E=88 =EC=99=84=ED=99=94=EB=90=98=EC=96=B4 =EC=9E=88=EB=8B= =A4=EB=A9=B4 =EB=8D=B0=EC=9D=B4=ED=84=B0 =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84= =B0=EC=97=90=EC=9D=98 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=8A=94 =EC=96=B4=EB=93= =9C=EB=A0=88=EC=8A=A4 -=EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0=EC=97=90 =EB=91=90=EB=B2=88=EC=A7=B8= =EB=A1=9C =ED=96=89=ED=95=B4=EC=A7=80=EB=8A=94 =EC=8A=A4=ED=86=A0=EC=96=B4 = =EB=92=A4=EC=97=90 =EC=9D=BC=EC=96=B4=EB=82=A0 =EC=88=98=EB=8F=84 =EC=9E=88= =EC=8A=B5=EB=8B=88=EB=8B=A4: - - STORE *ADDR =3D 3, STORE *ADDR =3D 4, STORE *DATA =3D y, q =3D LOAD *DATA - - -=EB=A7=8C=EC=95=BD =EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=B4 =EC=B6= =A9=EB=B6=84=ED=9E=88 =EC=99=84=ED=99=94=EB=90=98=EC=96=B4 =EC=9E=88=EA=B3= =A0 =EB=AC=B5=EC=8B=9C=EC=A0=81=EC=9C=BC=EB=A1=9C=EB=93=A0 =EB=AA=85=EC=8B= =9C=EC=A0=81=EC=9C=BC=EB=A1=9C=EB=93=A0 =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0= =80 -=EC=82=AC=EC=9A=A9=EB=90=98=EC=A7=80 =EC=95=8A=EC=95=98=EB=8B=A4=EB=A9=B4 = =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94 = =EC=84=B9=EC=85=98=EC=97=90=EC=84=9C =EC=9D=BC=EC=96=B4=EB=82=9C =EC=95=A1= =EC=84=B8=EC=8A=A4=EA=B0=80 =EB=B0=94=EA=B9=A5=EC=9C=BC=EB=A1=9C =EC=83=88= =EC=96=B4=EC=84=9C -=EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =EB=82=B4=EC=97=90=EC=84=9C =EC=9D=BC= =EC=96=B4=EB=82=9C =EC=95=A1=EC=84=B8=EC=8A=A4=EC=99=80 =EC=84=9E=EC=9D=BC = =EC=88=98 =EC=9E=88=EB=8B=A4=EA=B3=A0 - =EA=B7=B8=EB=A6=AC=EA=B3=A0 =EA=B7= =B8 =EB=B0=98=EB=8C=80=EB=8F=84 - =EA=B0=80=EC=A0=95=ED=95=B4=EC=95=BC=EB= =A7=8C -=ED=95=A9=EB=8B=88=EB=8B=A4. - -=EA=B7=B8=EB=9F=B0 =EC=98=81=EC=97=AD =EC=95=88=EC=97=90=EC=84=9C =EC=9D= =BC=EC=96=B4=EB=82=98=EB=8A=94 I/O =EC=95=A1=EC=84=B8=EC=8A=A4=EB=8A=94 =EB= =AC=B5=EC=8B=9C=EC=A0=81 I/O =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =ED=98=95= =EC=84=B1=ED=95=98=EB=8A=94, =EC=97=84=EA=B2=A9=ED=95=9C -=EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=98 I/O =EB=A0=88=EC=A7=80=EC= =8A=A4=ED=84=B0=EB=A1=9C=EC=9D=98 =EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB= =A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =ED=8F=AC=ED=95=A8=ED=95=98=EA=B8=B0 =EB= =95=8C=EB=AC=B8=EC=97=90 =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C=EB= =8A=94 -=EB=AC=B8=EC=A0=9C=EA=B0=80 =EB=90=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88= =EB=8B=A4. - - -=ED=95=98=EB=82=98=EC=9D=98 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A=B8 =EB=A3=A8= =ED=8B=B4=EA=B3=BC =EB=B3=84=EB=8F=84=EC=9D=98 CPU =EC=97=90=EC=84=9C =EC= =88=98=ED=96=89=EC=A4=91=EC=9D=B4=EB=A9=B0 =EC=84=9C=EB=A1=9C =ED=86=B5=EC= =8B=A0=EC=9D=84 =ED=95=98=EB=8A=94 =EB=91=90 =EB=A3=A8=ED=8B=B4 -=EC=82=AC=EC=9D=B4=EC=97=90=EB=8F=84 =EB=B9=84=EC=8A=B7=ED=95=9C =EC=83=81= =ED=99=A9=EC=9D=B4 =EC=9D=BC=EC=96=B4=EB=82=A0 =EC=88=98 =EC=9E=88=EC=8A=B5= =EB=8B=88=EB=8B=A4. =EB=A7=8C=EC=95=BD =EA=B7=B8=EB=9F=B0 =EA=B2=BD=EC=9A= =B0=EA=B0=80 =EB=B0=9C=EC=83=9D=ED=95=A0 =EA=B0=80=EB=8A=A5=EC=84=B1=EC=9D= =B4 -=EC=9E=88=EB=8B=A4=EB=A9=B4, =EC=88=9C=EC=84=9C=EB=A5=BC =EB=B3=B4=EC=9E= =A5=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4 =EC=9D=B8=ED=84=B0=EB=9F=BD=ED=8A= =B8 =EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94 =EB=9D=BD=EC=9D=B4 =EC=82=AC=EC=9A= =A9=EB=90=98=EC=96=B4=EC=A0=B8=EC=95=BC=EB=A7=8C =ED=95=A9=EB=8B=88=EB=8B= =A4. - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -=EC=BB=A4=EB=84=90 I/O =EB=B0=B0=EB=A6=AC=EC=96=B4=EC=9D=98 =ED=9A=A8=EA= =B3=BC -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -I/O =EC=95=A1=EC=84=B8=EC=8A=A4=EB=A5=BC =ED=86=B5=ED=95=9C =EC=A3=BC=EB= =B3=80=EC=9E=A5=EC=B9=98=EC=99=80=EC=9D=98 =ED=86=B5=EC=8B=A0=EC=9D=80 =EC= =95=84=ED=82=A4=ED=85=8D=EC=B3=90=EC=99=80 =EA=B8=B0=EA=B8=B0=EC=97=90 =EB= =A7=A4=EC=9A=B0 =EC=A2=85=EC=86=8D=EC=A0=81=EC=9E=85=EB=8B=88=EB=8B=A4. -=EB=94=B0=EB=9D=BC=EC=84=9C, =EB=B3=B8=EC=A7=88=EC=A0=81=EC=9C=BC=EB=A1=9C= =EC=9D=B4=EC=8B=9D=EC=84=B1=EC=9D=B4 =EC=97=86=EB=8A=94 =EB=93=9C=EB=9D=BC= =EC=9D=B4=EB=B2=84=EB=8A=94 =EA=B0=80=EB=8A=A5=ED=95=9C =EA=B0=80=EC=9E=A5 = =EC=A0=81=EC=9D=80 =EC=98=A4=EB=B2=84=ED=97=A4=EB=93=9C=EB=A1=9C -=EB=8F=99=EA=B8=B0=ED=99=94=EB=A5=BC =ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4= =EA=B0=81=EC=9E=90=EC=9D=98 =ED=83=80=EA=B2=9F =EC=8B=9C=EC=8A=A4=ED=85=9C= =EC=9D=98 =ED=8A=B9=EC=A0=95 =EB=8F=99=EC=9E=91=EC=97=90 =EC=9D=98=EC=A1=B4= =ED=95=A0 =EA=B2=81=EB=8B=88=EB=8B=A4. =EB=8B=A4=EC=96=91=ED=95=9C -=EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90=EC=99=80 =EB=B2=84=EC=8A=A4 =EA=B5=AC= =ED=98=84=EC=97=90 =EC=9D=B4=EC=8B=9D=EC=84=B1=EC=9D=84 =EA=B0=80=EC=A7=80= =EB=A0=A4 =ED=95=98=EB=8A=94 =EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84=EB=A5=BC = =EC=9C=84=ED=95=B4, =EC=BB=A4=EB=84=90=EC=9D=80 =EB=8B=A4=EC=96=91=ED=95=9C -=EC=A0=95=EB=8F=84=EC=9D=98 =EC=88=9C=EC=84=9C =EB=B3=B4=EC=9E=A5=EC=9D=84= =EC=A0=9C=EA=B3=B5=ED=95=98=EB=8A=94 =EC=9D=BC=EB=A0=A8=EC=9D=98 =EC=95=A1= =EC=84=B8=EC=8A=A4 =ED=95=A8=EC=88=98=EB=A5=BC =EC=A0=9C=EA=B3=B5=ED=95=A9= =EB=8B=88=EB=8B=A4. - - (*) readX(), writeX(): - - readX() =EC=99=80 writeX() MMIO =EC=95=A1=EC=84=B8=EC=8A=A4 =ED=95=A8=EC= =88=98=EB=8A=94 =EC=A0=91=EA=B7=BC=EB=90=98=EB=8A=94 =EC=A3=BC=EB=B3=80=EC= =9E=A5=EC=B9=98=EB=A1=9C=EC=9D=98 =ED=8F=AC=EC=9D=B8=ED=84=B0=EB=A5=BC - __iomem * =ED=8C=A8=EB=9F=AC=EB=AF=B8=ED=84=B0=EB=A1=9C =EB=B0=9B=EC=8A= =B5=EB=8B=88=EB=8B=A4. =EB=94=94=ED=8F=B4=ED=8A=B8 I/O =EA=B8=B0=EB=8A=A5= =EC=9C=BC=EB=A1=9C =EB=A7=A4=ED=95=91=EB=90=98=EB=8A=94 =ED=8F=AC=EC=9D=B8= =ED=84=B0 - (=EC=98=88: ioremap() =EC=9C=BC=EB=A1=9C =EB=B0=98=ED=99=98=EB=90=98=EB= =8A=94 =EA=B2=83) =EC=9D=98 =EC=88=9C=EC=84=9C =EB=B3=B4=EC=9E=A5=EC=9D=80 = =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=8A=B5=EB=8B=88=EB=8B=A4: - - 1. =EA=B0=99=EC=9D=80 =EC=A3=BC=EB=B3=80=EC=9E=A5=EC=B9=98=EB=A1=9C=EC=9D= =98 =EB=AA=A8=EB=93=A0 readX() =EC=99=80 writeX() =EC=95=A1=EC=84=B8=EC=8A= =A4=EB=8A=94 =EA=B0=81=EC=9E=90=EC=97=90 =EB=8C=80=ED=95=B4 - =EC=88=9C=EC=84=9C=EC=A7=80=EC=96=B4=EC=A7=91=EB=8B=88=EB=8B=A4. =EC= =9D=B4=EB=8A=94 =EA=B0=99=EC=9D=80 CPU =EC=93=B0=EB=A0=88=EB=93=9C=EC=97=90= =EC=9D=98=ED=95=9C =ED=8A=B9=EC=A0=95 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4= =EB=A1=9C=EC=9D=98 MMIO - =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0 =EC=95=A1=EC=84=B8=EC=8A=A4=EA=B0= =80 =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8 =EC=88=9C=EC=84=9C=EB=8C=80=EB=A1= =9C =EB=8F=84=EC=B0=A9=ED=95=A0 =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95= =A9=EB=8B=88=EB=8B=A4. - - 2. =ED=95=9C =EC=8A=A4=ED=95=80=EB=9D=BD=EC=9D=84 =EC=9E=A1=EC=9D=80 CPU = =EC=93=B0=EB=A0=88=EB=93=9C=EC=97=90 =EC=9D=98=ED=95=9C writeX() =EB=8A=94 = =EA=B0=99=EC=9D=80 =EC=8A=A4=ED=95=80=EB=9D=BD=EC=9D=84 =EB=82=98=EC=A4=91= =EC=97=90 - =EC=9E=A1=EC=9D=80 =EB=8B=A4=EB=A5=B8 CPU =EC=93=B0=EB=A0=88=EB=93=9C= =EC=97=90 =EC=9D=98=ED=95=B4 =EA=B0=99=EC=9D=80 =EC=A3=BC=EB=B3=80=EC=9E=A5= =EC=B9=98=EB=A5=BC =ED=96=A5=ED=95=B4 =ED=98=B8=EC=B6=9C=EB=90=9C writeX() - =EC=95=9E=EC=9C=BC=EB=A1=9C =EC=88=9C=EC=84=9C=EC=A7=80=EC=96=B4=EC=A7= =91=EB=8B=88=EB=8B=A4. =EC=9D=B4=EB=8A=94 =EC=8A=A4=ED=95=80=EB=9D=BD=EC= =9D=84 =EC=9E=A1=EC=9D=80 =EC=B1=84 =ED=8A=B9=EC=A0=95 =EB=94=94=EB=B0=94= =EC=9D=B4=EC=8A=A4=EB=A5=BC =ED=96=A5=ED=95=B4 - =ED=98=B8=EC=B6=9C=EB=90=9C MMIO =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0 = =EC=93=B0=EA=B8=B0=EB=8A=94 =ED=95=B4=EB=8B=B9 =EB=9D=BD=EC=9D=98 =ED=9A=8D= =EB=93=9D=EC=97=90 =EC=9D=BC=EA=B4=80=EC=A0=81=EC=9D=B8 =EC=88=9C=EC=84=9C= =EB=A1=9C =EB=8F=84=EB=8B=AC=ED=95=A0 - =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. - - 3. =ED=8A=B9=EC=A0=95 =EC=A3=BC=EB=B3=80=EC=9E=A5=EC=B9=98=EB=A5=BC =ED= =96=A5=ED=95=9C =ED=8A=B9=EC=A0=95 CPU =EC=93=B0=EB=A0=88=EB=93=9C=EC=9D=98= writeX() =EB=8A=94 =EB=A8=BC=EC=A0=80 =ED=95=B4=EB=8B=B9 - =EC=93=B0=EB=A0=88=EB=93=9C=EB=A1=9C =EC=A0=84=ED=8C=8C=EB=90=98=EB=8A= =94, =EB=98=90=EB=8A=94 =ED=95=B4=EB=8B=B9 =EC=93=B0=EB=A0=88=EB=93=9C=EC= =97=90 =EC=9D=98=ED=95=B4 =EC=9A=94=EC=B2=AD=EB=90=9C =EB=AA=A8=EB=93=A0 = =EC=95=9E=EC=84=A0 =EB=A9=94=EB=AA=A8=EB=A6=AC - =EC=93=B0=EA=B8=B0=EA=B0=80 =EC=99=84=EB=A3=8C=EB=90=98=EA=B8=B0 =EC= =A0=84=EA=B9=8C=EC=A7=80 =EB=A8=BC=EC=A0=80 =EA=B8=B0=EB=8B=A4=EB=A6=BD=EB= =8B=88=EB=8B=A4. =EC=9D=B4=EB=8A=94 dma_alloc_coherent() - =EB=A5=BC =ED=86=B5=ED=95=B4 =ED=95=A0=EB=8B=B9=EB=90=9C =EC=A0=84=EC= =86=A1=EC=9A=A9 DMA =EB=B2=84=ED=8D=BC=EB=A1=9C=EC=9D=98 =ED=95=B4=EB=8B=B9= CPU =EC=9D=98 =EC=93=B0=EA=B8=B0=EA=B0=80 =EC=9D=B4 CPU =EA=B0=80 =EC=9D= =B4 - =EC=A0=84=EC=86=A1=EC=9D=84 =EC=8B=9C=EC=9E=91=EC=8B=9C=ED=82=A4=EA=B8= =B0 =EC=9C=84=ED=95=B4 MMIO =EC=BB=A8=ED=8A=B8=EB=A1=A4 =EB=A0=88=EC=A7=80= =EC=8A=A4=ED=84=B0=EC=97=90 =EC=93=B0=EA=B8=B0=EB=A5=BC =ED=95=A0 =EB=95=8C= DMA - =EC=97=94=EC=A7=84=EC=97=90 =EB=B3=B4=EC=97=AC=EC=A7=88 =EA=B2=83=EC= =9D=84 =EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. - - 4. =ED=8A=B9=EC=A0=95 CPU =EC=93=B0=EB=A0=88=EB=93=9C=EC=97=90 =EC=9D=98= =ED=95=9C =EC=A3=BC=EB=B3=80=EC=9E=A5=EC=B9=98=EB=A1=9C=EC=9D=98 readX() = =EB=8A=94 =EA=B0=99=EC=9D=80 =EC=93=B0=EB=A0=88=EB=93=9C=EC=97=90 =EC=9D=98= =ED=95=9C - =EB=AA=A8=EB=93=A0 =EB=92=A4=EB=94=B0=EB=A5=B4=EB=8A=94 =EB=A9=94=EB= =AA=A8=EB=A6=AC =EC=9D=BD=EA=B8=B0=EA=B0=80 =EC=8B=9C=EC=9E=91=EB=90=98=EA= =B8=B0 =EC=A0=84=EC=97=90 =EC=99=84=EB=A3=8C=EB=90=A9=EB=8B=88=EB=8B=A4. = =EC=9D=B4=EB=8A=94 - dma_alloc_coherent() =EB=A5=BC =ED=86=B5=ED=95=B4 =ED=95=A0=EB=8B=B9= =EB=90=9C =EC=88=98=EC=8B=A0=EC=9A=A9 DMA =EB=B2=84=ED=8D=BC=EB=A1=9C=EB=B6= =80=ED=84=B0=EC=9D=98 CPU =EC=9D=98 - =EC=9D=BD=EA=B8=B0=EB=8A=94 =EC=9D=B4 DMA =EC=88=98=EC=8B=A0=EC=9D=98 = =EC=99=84=EB=A3=8C=EB=A5=BC =ED=91=9C=EC=8B=9C=ED=95=98=EB=8A=94 DMA =EC=97= =94=EC=A7=84=EC=9D=98 MMIO =EC=83=81=ED=83=9C =EB=A0=88=EC=A7=80=EC=8A=A4= =ED=84=B0 - =EC=9D=BD=EA=B8=B0 =ED=9B=84=EC=97=90=EB=8A=94 =EC=98=A4=EC=97=BC=EB= =90=9C =EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC =EC=9D=BD=EC=A7=80 =EC=95=8A=EC= =9D=84 =EA=B2=83=EC=9D=84 =EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4. - - 5. CPU =EC=97=90 =EC=9D=98=ED=95=9C =EC=A3=BC=EB=B3=80=EC=9E=A5=EC=B9=98= =EB=A1=9C=EC=9D=98 readX() =EB=8A=94 =EB=AA=A8=EB=93=A0 =EB=92=A4=EB=94=B0= =EB=A5=B4=EB=8A=94 delay() =EB=A3=A8=ED=94=84=EA=B0=80 - =EC=88=98=ED=96=89=EC=9D=84 =EC=8B=9C=EC=9E=91=ED=95=98=EA=B8=B0 =EC= =A0=84=EC=97=90 =EC=99=84=EB=A3=8C=EB=90=A9=EB=8B=88=EB=8B=A4. =EC=9D=B4= =EB=8A=94 CPU =EC=9D=98 =ED=8A=B9=EC=A0=95 - =EC=A3=BC=EB=B3=80=EC=9E=A5=EC=B9=98=EB=A1=9C=EC=9D=98 =EB=91=90=EA=B0= =9C=EC=9D=98 MMIO =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0 =EC=93=B0=EA=B8=B0= =EA=B0=80 =ED=96=89=ED=95=B4=EC=A7=80=EB=8A=94=EB=8D=B0 =EC=B2=AB=EB=B2=88= =EC=A7=B8 =EC=93=B0=EA=B8=B0=EA=B0=80 - readX() =EB=A5=BC =ED=86=B5=ED=95=B4 =EA=B3=A7=EB=B0=94=EB=A1=9C =EC= =9D=BD=EC=96=B4=EC=A1=8C=EA=B3=A0 =EC=9D=B4=EC=96=B4 =EB=91=90=EB=B2=88=EC= =A7=B8 writeX() =EC=A0=84=EC=97=90 udelay(1) - =EC=9D=B4 =ED=98=B8=EC=B6=9C=EB=90=98=EC=97=88=EB=8B=A4=EB=A9=B4 =EC= =9D=B4 =EB=91=90=EA=B0=9C=EC=9D=98 =EC=93=B0=EA=B8=B0=EB=8A=94 =EC=B5=9C=EC= =86=8C 1us =EC=9D=98 =EA=B0=84=EA=B2=A9=EC=9D=84 =EB=91=90=EA=B3=A0 =ED=96= =89=ED=95=B4=EC=A7=88 =EA=B2=83=EC=9D=84 - =EB=B3=B4=EC=9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4: - - writel(42, DEVICE_REGISTER_0); // =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4= =EC=97=90 =EB=8F=84=EC=B0=A9=ED=95=A8... - readl(DEVICE_REGISTER_0); - udelay(1); - writel(42, DEVICE_REGISTER_1); // ...=EC=9D=B4=EA=B2=83=EB=B3=B4=EB=8B= =A4 =EC=B5=9C=EC=86=8C 1us =EC=A0=84=EC=97=90. - - =EB=94=94=ED=8F=B4=ED=8A=B8=EA=B0=80 =EC=95=84=EB=8B=8C =EA=B8=B0=EB=8A= =A5=EC=9D=84 =ED=86=B5=ED=95=B4 =EC=96=BB=EC=96=B4=EC=A7=80=EB=8A=94 __iome= m =ED=8F=AC=EC=9D=B8=ED=84=B0 (=EC=98=88: ioremap_wc() =EB=A5=BC - =ED=86=B5=ED=95=B4 =EB=A6=AC=ED=84=B4=EB=90=98=EB=8A=94 =EA=B2=83) =EC=9D= =98 =EC=88=9C=EC=84=9C =EC=86=8D=EC=84=B1=EC=9D=80 =EC=8B=A4=EC=A0=9C =EC= =95=84=ED=82=A4=ED=85=8D=EC=B3=90=EC=97=90 =EC=9D=98=EC=A1=B4=EC=A0=81=EC= =9D=B4=EC=96=B4=EC=84=9C =EC=9D=B4=EB=9F=B0 - =EC=A2=85=EB=A5=98=EC=9D=98 =EB=A7=A4=ED=95=91=EC=9C=BC=EB=A1=9C=EC=9D=98= =EC=95=A1=EC=84=B8=EC=8A=A4=EB=8A=94 =EC=95=9E=EC=84=9C =EC=84=A4=EB=AA=85= =EB=90=9C =EB=B3=B4=EC=9E=A5=EC=82=AC=ED=95=AD=EC=97=90 =EC=9D=98=EC=A1=B4= =ED=95=A0 =EC=88=98 =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4. - - (*) readX_relaxed(), writeX_relaxed() - - =EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 readX() =EC=99=80 writeX() =EB=9E=91= =EB=B9=84=EC=8A=B7=ED=95=98=EC=A7=80=EB=A7=8C, =EB=8D=94 =EC=99=84=ED=99= =94=EB=90=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=88=9C=EC=84=9C - =EB=B3=B4=EC=9E=A5=EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=A9=EB=8B=88=EB=8B=A4= . =EA=B5=AC=EC=B2=B4=EC=A0=81=EC=9C=BC=EB=A1=9C, =EC=9D=B4=EA=B2=83=EB=93= =A4=EC=9D=80 =EC=9D=BC=EB=B0=98=EC=A0=81 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95= =A1=EC=84=B8=EC=8A=A4=EB=82=98 delay() - =EB=A3=A8=ED=94=84 (=EC=98=88:=EC=95=9E=EC=9D=98 2-5 =ED=95=AD=EB=AA=A9) = =EC=97=90 =EB=8C=80=ED=95=B4 =EC=88=9C=EC=84=9C=EB=A5=BC =EB=B3=B4=EC=9E=A5= =ED=95=98=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4=EB=A7=8C =EB=94=94= =ED=8F=B4=ED=8A=B8 I/O - =EA=B8=B0=EB=8A=A5=EC=9C=BC=EB=A1=9C =EB=A7=A4=ED=95=91=EB=90=9C __iomem = =ED=8F=AC=EC=9D=B8=ED=84=B0=EC=97=90 =EB=8C=80=ED=95=B4 =EB=8F=99=EC=9E=91= =ED=95=A0 =EB=95=8C, =EA=B0=99=EC=9D=80 CPU =EC=93=B0=EB=A0=88=EB=93=9C=EC= =97=90 =EC=9D=98=ED=95=9C - =EA=B0=99=EC=9D=80 =EC=A3=BC=EB=B3=80=EC=9E=A5=EC=B9=98=EB=A1=9C=EC=9D=98= =EC=95=A1=EC=84=B8=EC=8A=A4=EC=97=90=EB=8A=94 =EC=88=9C=EC=84=9C=EA=B0=80 = =EB=A7=9E=EC=B6=B0=EC=A7=88 =EA=B2=83=EC=9D=B4 =EB=B3=B4=EC=9E=A5=EB=90=A9= =EB=8B=88=EB=8B=A4. - - (*) readsX(), writesX(): - - readsX() =EC=99=80 writesX() MMIO =EC=95=A1=EC=84=B8=EC=8A=A4 =ED=95=A8= =EC=88=98=EB=8A=94 DMA =EB=A5=BC =EC=88=98=ED=96=89=ED=95=98=EB=8A=94=EB=8D= =B0 =EC=A0=81=EC=A0=88=EC=B9=98 =EC=95=8A=EC=9D=80, - =EC=A3=BC=EB=B3=80=EC=9E=A5=EC=B9=98 =EB=82=B4=EC=9D=98 =EB=A9=94=EB=AA= =A8=EB=A6=AC =EB=A7=A4=ED=95=91=EB=90=9C =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84= =B0 =EA=B8=B0=EB=B0=98 FIFO =EB=A1=9C=EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4= =EB=A5=BC =EC=9C=84=ED=95=B4 - =EC=84=A4=EA=B3=84=EB=90=98=EC=97=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=94= =B0=EB=9D=BC=EC=84=9C, =EC=9D=B4 =EA=B8=B0=EB=8A=A5=EB=93=A4=EC=9D=80 =EC= =95=9E=EC=84=9C =EC=84=A4=EB=AA=85=EB=90=9C readX_relaxed() =EC=99=80 - writeX_relaxed() =EC=9D=98 =EC=88=9C=EC=84=9C =EB=B3=B4=EC=9E=A5=EB=A7=8C= =EC=9D=84 =EC=A0=9C=EA=B3=B5=ED=95=A9=EB=8B=88=EB=8B=A4. - - (*) inX(), outX(): - - inX() =EC=99=80 outX() =EC=95=A1=EC=84=B8=EC=8A=A4 =ED=95=A8=EC=88=98=EB= =8A=94 =EC=9D=BC=EB=B6=80 =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90 (=ED=8A=B9= =ED=9E=88 x86) =EC=97=90=EC=84=9C=EB=8A=94 =ED=8A=B9=EC=88=98=ED=95=9C - =EB=AA=85=EB=A0=B9=EC=96=B4=EB=A5=BC =ED=95=84=EC=9A=94=EB=A1=9C =ED=95= =98=EB=A9=B0 =ED=8F=AC=ED=8A=B8=EC=97=90 =EB=A7=A4=ED=95=91=EB=90=98=EB=8A= =94, =EA=B3=BC=EA=B1=B0=EC=9D=98 =EC=9C=A0=EC=82=B0=EC=9D=B8 I/O =EC=A3=BC= =EB=B3=80=EC=9E=A5=EC=B9=98=EB=A1=9C=EC=9D=98 - =EC=A0=91=EA=B7=BC=EC=9D=84 =EC=9C=84=ED=95=B4 =EB=A7=8C=EB=93=A4=EC=96= =B4=EC=A1=8C=EC=8A=B5=EB=8B=88=EB=8B=A4. - - =EB=A7=8E=EC=9D=80 CPU =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90=EA=B0=80 =EA= =B2=B0=EA=B5=AD=EC=9D=80 =EC=9D=B4=EB=9F=B0 =EC=A3=BC=EB=B3=80=EC=9E=A5=EC= =B9=98=EB=A5=BC =EB=82=B4=EB=B6=80=EC=9D=98 =EA=B0=80=EC=83=81 =EB=A9=94=EB= =AA=A8=EB=A6=AC =EB=A7=A4=ED=95=91=EC=9D=84 - =ED=86=B5=ED=95=B4 =EC=A0=91=EA=B7=BC=ED=95=98=EA=B8=B0 =EB=95=8C=EB=AC= =B8=EC=97=90, inX() =EC=99=80 outX() =EA=B0=80 =EC=A0=9C=EA=B3=B5=ED=95=98= =EB=8A=94 =EC=9D=B4=EC=8B=9D=EC=84=B1 =EC=9E=88=EB=8A=94 =EC=88=9C=EC=84=9C - =EB=B3=B4=EC=9E=A5=EC=9D=80 =EB=94=94=ED=8F=B4=ED=8A=B8 I/O =EA=B8=B0=EB= =8A=A5=EC=9D=84 =ED=86=B5=ED=95=9C =EB=A7=A4=ED=95=91=EC=9D=84 =EC=A0=91=EA= =B7=BC=ED=95=A0 =EB=95=8C=EC=9D=98 readX() =EC=99=80 writeX() =EC=97=90 - =EC=9D=98=ED=95=B4 =EC=A0=9C=EA=B3=B5=EB=90=98=EB=8A=94 =EA=B2=83=EA=B3= =BC =EA=B0=81=EA=B0=81 =EB=8F=99=EC=9D=BC=ED=95=A9=EB=8B=88=EB=8B=A4. - - =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4 =EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84= =EB=8A=94 outX() =EA=B0=80 =EB=A6=AC=ED=84=B4=ED=95=98=EA=B8=B0 =EC=A0=84= =EC=97=90 =ED=95=B4=EB=8B=B9 I/O =EC=A3=BC=EB=B3=80=EC=9E=A5=EC=B9=98=EB=A1= =9C=EB=B6=80=ED=84=B0=EC=9D=98 - =EC=99=84=EB=A3=8C =EC=9D=91=EB=8B=B5=EC=9D=84 =EA=B8=B0=EB=8B=A4=EB=A6= =AC=EB=8A=94 =EC=93=B0=EA=B8=B0 =ED=8A=B8=EB=9E=9C=EC=9E=AD=EC=85=98=EC=9D= =84 =EB=A7=8C=EB=93=A4=EC=96=B4 =EB=82=B8=EB=8B=A4=EA=B3=A0 =EA=B8=B0=EB=8C= =80=ED=95=A0 =EC=88=98=EB=8F=84 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EB=8A=94 =EB=AA=A8=EB=93= =A0 =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90=EC=97=90=EC=84=9C =EB=B3=B4=EC=9E= =A5=EB=90=98=EC=A7=80=EB=8A=94 =EC=95=8A=EA=B3=A0, =EB=94=B0=EB=9D=BC=EC=84= =9C =EC=9D=B4=EC=8B=9D=EC=84=B1 =EC=9E=88=EB=8A=94 - =EC=88=9C=EC=84=9C =EA=B7=9C=EC=B9=99=EC=9D=98 =EC=9D=BC=EB=B6=80=EB=B6= =84=EC=9D=B4 =EC=95=84=EB=8B=99=EB=8B=88=EB=8B=A4. - - (*) insX(), outsX(): - - =EC=95=9E=EC=97=90=EC=84=9C=EC=99=80 =EA=B0=99=EC=9D=B4, insX() =EC=99=80= outsX() =EC=95=A1=EC=84=B8=EC=8A=A4 =ED=95=A8=EC=88=98=EB=8A=94 =EB=94=94= =ED=8F=B4=ED=8A=B8 I/O =EA=B8=B0=EB=8A=A5=EC=9D=84 =ED=86=B5=ED=95=9C - =EB=A7=A4=ED=95=91=EC=9D=84 =EC=A0=91=EA=B7=BC=ED=95=A0 =EB=95=8C =EA=B0= =81=EA=B0=81 readX() =EC=99=80 writeX() =EC=99=80 =EA=B0=99=EC=9D=80 =EC=88= =9C=EC=84=9C =EB=B3=B4=EC=9E=A5=EC=9D=84 - =EC=A0=9C=EA=B3=B5=ED=95=A9=EB=8B=88=EB=8B=A4. - - (*) ioreadX(), iowriteX() - - =EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 inX()/outX() =EB=82=98 readX()/write= X() =EC=B2=98=EB=9F=BC =EC=8B=A4=EC=A0=9C=EB=A1=9C =EC=88=98=ED=96=89=ED=95= =98=EB=8A=94 =EC=95=A1=EC=84=B8=EC=8A=A4=EC=9D=98 - =EC=A2=85=EB=A5=98=EC=97=90 =EB=94=B0=EB=9D=BC =EC=A0=81=EC=A0=88=ED=95= =98=EA=B2=8C =EC=88=98=ED=96=89=EB=90=A0 =EA=B2=83=EC=9E=85=EB=8B=88=EB=8B= =A4. - -String =EC=95=A1=EC=84=B8=EC=8A=A4 =ED=95=A8=EC=88=98 (insX(), outsX(), re= adsX() =EA=B7=B8=EB=A6=AC=EA=B3=A0 writesX()) =EC=9D=98 =EC=98=88=EC=99=B8= =EB=A5=BC -=EC=A0=9C=EC=99=B8=ED=95=98=EA=B3=A0=EB=8A=94, =EC=95=9E=EC=9D=98 =EB=AA= =A8=EB=93=A0 =EA=B2=83=EC=9D=B4 =EC=95=84=EB=9E=AB=EB=8B=A8=EC=9D=98 =EC=A3= =BC=EB=B3=80=EC=9E=A5=EC=B9=98=EA=B0=80 little-endian =EC=9D=B4=EB=9D=BC = =EA=B0=80=EC=A0=95=ED=95=98=EB=A9=B0, -=EB=94=B0=EB=9D=BC=EC=84=9C big-endian =EC=95=84=ED=82=A4=ED=85=8D=EC=B3= =90=EC=97=90=EC=84=9C=EB=8A=94 byte-swapping =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EC=9D=84 =EC=88=98=ED=96=89=ED=95=A9=EB=8B=88=EB=8B=A4. - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -=EA=B0=80=EC=A0=95=EB=90=98=EB=8A=94 =EA=B0=80=EC=9E=A5 =EC=99=84=ED=99=94= =EB=90=9C =EC=8B=A4=ED=96=89 =EC=88=9C=EC=84=9C =EB=AA=A8=EB=8D=B8 -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -=EC=BB=A8=EC=85=89=EC=A0=81=EC=9C=BC=EB=A1=9C CPU =EB=8A=94 =EC=A3=BC=EC= =96=B4=EC=A7=84 =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=EC=97=90 =EB=8C=80=ED= =95=B4 =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8 =EA=B7=B8 =EC=9E=90=EC=B2=B4=EC= =97=90=EB=8A=94 =EC=9D=B8=EA=B3=BC=EC=84=B1 (program -causality) =EC=9D=84 =EC=A7=80=ED=82=A4=EB=8A=94 =EA=B2=83=EC=B2=98=EB=9F= =BC =EB=B3=B4=EC=9D=B4=EA=B2=8C =ED=95=98=EC=A7=80=EB=A7=8C =EC=9D=BC=EB=B0= =98=EC=A0=81=EC=9C=BC=EB=A1=9C=EB=8A=94 =EC=88=9C=EC=84=9C=EB=A5=BC =EA=B1= =B0=EC=9D=98 =EC=A7=80=EC=BC=9C=EC=A3=BC=EC=A7=80 -=EC=95=8A=EB=8A=94=EB=8B=A4=EA=B3=A0 =EA=B0=80=EC=A0=95=EB=90=98=EC=96=B4= =EC=95=BC=EB=A7=8C =ED=95=A9=EB=8B=88=EB=8B=A4. (i386 =EC=9D=B4=EB=82=98 x= 86_64 =EA=B0=99=EC=9D=80) =EC=9D=BC=EB=B6=80 CPU =EB=93=A4=EC=9D=80 =EC=BD= =94=EB=93=9C -=EC=9E=AC=EB=B0=B0=EC=B9=98=EC=97=90 (powerpc =EB=82=98 frv =EC=99=80 =EA= =B0=99=EC=9D=80) =EB=8B=A4=EB=A5=B8 =EA=B2=83=EB=93=A4=EC=97=90 =EB=B9=84= =ED=95=B4 =EA=B0=95=ED=95=9C =EC=A0=9C=EC=95=BD=EC=9D=84 =EA=B0=96=EC=A7=80= =EB=A7=8C, =EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90 -=EC=A2=85=EC=86=8D=EC=A0=81 =EC=BD=94=EB=93=9C =EC=9D=B4=EC=99=B8=EC=9D=98= =EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=EB=8A=94 =EC=88=9C=EC=84=9C=EC=97=90 = =EB=8C=80=ED=95=9C =EC=A0=9C=EC=95=BD=EC=9D=B4 =EA=B0=80=EC=9E=A5 =EC=99=84= =ED=99=94=EB=90=9C =EA=B2=BD=EC=9A=B0 (DEC Alpha) -=EB=A5=BC =EA=B0=80=EC=A0=95=ED=95=B4=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4. - -=EC=9D=B4 =EB=A7=90=EC=9D=80, CPU =EC=97=90=EA=B2=8C =EC=A3=BC=EC=96=B4=EC= =A7=80=EB=8A=94 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98 =EC=8A=A4=ED= =8A=B8=EB=A6=BC =EB=82=B4=EC=9D=98 =ED=95=9C =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB= =9F=AD=EC=85=98=EC=9D=B4 =EC=95=9E=EC=9D=98 -=EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=97=90 =EC=A2=85=EC=86=8D= =EC=A0=81=EC=9D=B4=EB=9D=BC=EB=A9=B4 =EC=95=9E=EC=9D=98 =EC=9D=B8=EC=8A=A4= =ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=80 =EB=92=A4=EC=9D=98 =EC=A2=85=EC=86=8D= =EC=A0=81 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=B4 =EC=8B=A4= =ED=96=89=EB=90=98=EA=B8=B0 -=EC=A0=84=EC=97=90 =EC=99=84=EB=A3=8C[*]=EB=90=A0 =EC=88=98 =EC=9E=88=EC= =96=B4=EC=95=BC =ED=95=9C=EB=8B=A4=EB=8A=94 =EC=A0=9C=EC=95=BD (=EB=8B=AC= =EB=A6=AC =EB=A7=90=ED=95=B4=EC=84=9C, =EC=9D=B8=EA=B3=BC=EC=84=B1=EC=9D=B4= =EC=A7=80=EC=BC=9C=EC=A7=80=EB=8A=94 =EA=B2=83=EC=9C=BC=EB=A1=9C -=EB=B3=B4=EC=9D=B4=EA=B2=8C =ED=95=A8) =EC=99=B8=EC=97=90=EB=8A=94 =EC=9E= =90=EC=8B=A0=EC=9D=B4 =EC=9B=90=ED=95=98=EB=8A=94 =EC=88=9C=EC=84=9C=EB=8C= =80=EB=A1=9C - =EC=8B=AC=EC=A7=80=EC=96=B4 =EB=B3=91=EB=A0=AC=EC=A0=81=EC= =9C=BC=EB=A1=9C=EB=8F=84 - =EA=B7=B8 =EC=8A=A4=ED=8A=B8=EB=A6=BC=EC=9D=84 -=EC=8B=A4=ED=96=89=ED=95=A0 =EC=88=98 =EC=9E=88=EC=9D=8C=EC=9D=84 =EC=9D= =98=EB=AF=B8=ED=95=A9=EB=8B=88=EB=8B=A4 - - [*] =EC=9D=BC=EB=B6=80 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC= =9D=80 =ED=95=98=EB=82=98 =EC=9D=B4=EC=83=81=EC=9D=98 =EC=98=81=ED=96=A5 - = =EC=A1=B0=EA=B1=B4 =EC=BD=94=EB=93=9C=EB=A5=BC =EB=B0=94=EA=BE=BC=EB=8B=A4= =EB=8D=98=EC=A7=80, =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0=EB=82=98 - =EB=A9=94=EB=AA=A8=EB=A6=AC=EB=A5=BC =EB=B0=94=EA=BE=BC=EB=8B=A4=EB= =8D=98=EC=A7=80 - =EC=9D=84 =EB=A7=8C=EB=93=A4=EC=96=B4=EB=82=B4=EB=A9=B0, = =EB=8B=A4=EB=A5=B8 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=80 = =EB=8B=A4=EB=A5=B8 =ED=9A=A8=EA=B3=BC=EC=97=90 - =EC=A2=85=EC=86=8D=EC=A0=81=EC=9D=BC =EC=88=98 =EC=9E=88=EC=8A=B5=EB= =8B=88=EB=8B=A4. - -CPU =EB=8A=94 =EC=B5=9C=EC=A2=85=EC=A0=81=EC=9C=BC=EB=A1=9C =EC=95=84=EB= =AC=B4 =ED=9A=A8=EA=B3=BC=EB=8F=84 =EB=A7=8C=EB=93=A4=EC=A7=80 =EC=95=8A=EB= =8A=94 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98 =EC=8B=9C=ED=80=80=EC= =8A=A4=EB=8A=94 =EC=97=86=EC=95=A0=EB=B2=84=EB=A6=B4 =EC=88=98=EB=8F=84 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=98=88=EB=A5=BC =EB=93=A4=EC=96= =B4, =EB=A7=8C=EC=95=BD =EB=91=90=EA=B0=9C=EC=9D=98 =EC=97=B0=EC=86=8D=EB= =90=98=EB=8A=94 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=B4 =EB= =91=98 =EB=8B=A4 =EA=B0=99=EC=9D=80 =EB=A0=88=EC=A7=80=EC=8A=A4=ED=84=B0=EC= =97=90 -=EC=A7=81=EC=A0=91=EC=A0=81=EC=9D=B8 =EA=B0=92 (immediate value) =EC=9D=84= =EC=A7=91=EC=96=B4=EB=84=A3=EB=8A=94=EB=8B=A4=EB=A9=B4, =EC=B2=AB=EB=B2=88= =EC=A7=B8 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=80 =EB=B2=84= =EB=A0=A4=EC=A7=88 =EC=88=98=EB=8F=84 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EB=B9=84=EC=8A=B7=ED=95=98=EA=B2=8C, =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC= =EC=97=AD=EC=8B=9C =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=EC=9D=98 =EC=9D=B8= =EA=B3=BC=EC=84=B1=EB=A7=8C =EC=A7=80=EC=BC=9C=EC=A4=80=EB=8B=A4=EB=A9=B4 = =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98 =EC=8A=A4=ED=8A=B8=EB=A6=BC= =EC=9D=84 -=EC=9E=90=EC=8B=A0=EC=9D=B4 =EB=B3=B4=EA=B8=B0=EC=97=90 =EC=98=AC=EB=B0=94= =EB=A5=B4=EB=8B=A4 =EC=83=9D=EA=B0=81=EB=90=98=EB=8A=94=EB=8C=80=EB=A1=9C = =EC=9E=AC=EB=B0=B0=EC=B9=98 =ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88= =EB=8B=A4. - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -CPU =EC=BA=90=EC=8B=9C=EC=9D=98 =EC=98=81=ED=96=A5 -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -=EC=BA=90=EC=8B=9C=EB=90=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC= =EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=B4 =EC=8B=9C=EC=8A=A4=ED=85=9C = =EC=A0=84=EC=B2=B4=EC=97=90 =EC=96=B4=EB=96=BB=EA=B2=8C =EC=9D=B8=EC=A7=80= =EB=90=98=EB=8A=94=EC=A7=80=EB=8A=94 CPU =EC=99=80 =EB=A9=94=EB=AA=A8=EB=A6= =AC -=EC=82=AC=EC=9D=B4=EC=97=90 =EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94 =EC=BA=90= =EC=8B=9C=EB=93=A4, =EA=B7=B8=EB=A6=AC=EA=B3=A0 =EC=8B=9C=EC=8A=A4=ED=85=9C= =EC=83=81=ED=83=9C=EC=9D=98 =EC=9D=BC=EA=B4=80=EC=84=B1=EC=9D=84 =EA=B4=80= =EB=A6=AC=ED=95=98=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=9D=BC=EA=B4=80= =EC=84=B1 -=EC=8B=9C=EC=8A=A4=ED=85=9C=EC=97=90 =EC=83=81=EB=8B=B9 =EB=B6=80=EB=B6=84= =EC=98=81=ED=96=A5=EC=9D=84 =EB=B0=9B=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=ED=95=9C CPU =EA=B0=80 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB=8B=A4=EB= =A5=B8 =EB=B6=80=EB=B6=84=EB=93=A4=EA=B3=BC =EC=BA=90=EC=8B=9C=EB=A5=BC =ED= =86=B5=ED=95=B4 =EC=83=81=ED=98=B8=EC=9E=91=EC=9A=A9=ED=95=9C=EB=8B=A4=EB= =A9=B4, =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=80 -CPU =EC=9D=98 =EC=BA=90=EC=8B=9C=EB=93=A4=EC=9D=84 =ED=8F=AC=ED=95=A8=ED= =95=B4=EC=95=BC =ED=95=98=EB=A9=B0, CPU =EC=99=80 CPU =EC=9E=90=EC=8B=A0=EC= =9D=98 =EC=BA=90=EC=8B=9C =EC=82=AC=EC=9D=B4=EC=97=90=EC=84=9C=EC=9D=98 =EB= =8F=99=EC=9E=91=EC=9D=84 =EC=9C=84=ED=95=9C -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EA=B0=80= =EC=A0=B8=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4. (=EB=A9=94=EB=AA=A8=EB=A6= =AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=85=BC=EB=A6=AC=EC=A0=81=EC=9C= =BC=EB=A1=9C=EB=8A=94 =EB=8B=A4=EC=9D=8C =EA=B7=B8=EB=A6=BC=EC=9D=98 -=EC=A0=90=EC=84=A0=EC=97=90=EC=84=9C =EB=8F=99=EC=9E=91=ED=95=A9=EB=8B=88= =EB=8B=A4): - - <--- CPU ---> : <----------- Memory -----------> - : - +--------+ +--------+ : +--------+ +-----------+ - | | | | : | | | | +--------+ - | CPU | | Memory | : | CPU | | | | | - | Core |--->| Access |----->| Cache |<-->| | | | - | | | Queue | : | | | |--->| Memory | - | | | | : | | | | | | - +--------+ +--------+ : +--------+ | | | | - : | Cache | +--------+ - : | Coherency | - : | Mechanism | +--------+ - +--------+ +--------+ : +--------+ | | | | - | | | | : | | | | | | - | CPU | | Memory | : | CPU | | |--->| Device | - | Core |--->| Access |----->| Cache |<-->| | | | - | | | Queue | : | | | | | | - | | | | : | | | | +--------+ - +--------+ +--------+ : +--------+ +-----------+ - : - : - -=ED=8A=B9=EC=A0=95 =EB=A1=9C=EB=93=9C=EB=82=98 =EC=8A=A4=ED=86=A0=EC=96=B4= =EB=8A=94 =ED=95=B4=EB=8B=B9 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EC=9D=84 =EC=9A=94=EC=B2=AD=ED=95=9C CPU =EC=9D=98 =EC=BA=90=EC=8B=9C =EB= =82=B4=EC=97=90=EC=84=9C =EB=8F=99=EC=9E=91=EC=9D=84 =EC=99=84=EB=A3=8C=ED= =95=A0 -=EC=88=98=EB=8F=84 =EC=9E=88=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90 =ED=95= =B4=EB=8B=B9 CPU =EC=9D=98 =EB=B0=94=EA=B9=A5=EC=97=90=EB=8A=94 =EB=B3=B4= =EC=9D=B4=EC=A7=80 =EC=95=8A=EC=9D=84 =EC=88=98 =EC=9E=88=EC=A7=80=EB=A7=8C= , =EB=8B=A4=EB=A5=B8 CPU =EA=B0=80 =EA=B4=80=EC=8B=AC=EC=9D=84 -=EA=B0=96=EB=8A=94=EB=8B=A4=EB=A9=B4 =EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80= =EC=84=B1 =EB=A9=94=EC=BB=A4=EB=8B=88=EC=A6=98=EC=9D=B4 =ED=95=B4=EB=8B=B9 = =EC=BA=90=EC=8B=9C=EB=9D=BC=EC=9D=B8=EC=9D=84 =ED=95=B4=EB=8B=B9 CPU =EC=97= =90=EA=B2=8C =EC=A0=84=EB=8B=AC=ED=95=98=EA=B3=A0, =ED=95=B4=EB=8B=B9 -=EB=A9=94=EB=AA=A8=EB=A6=AC =EC=98=81=EC=97=AD=EC=97=90 =EB=8C=80=ED=95=9C= =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=B4 =EB=B0=9C=EC=83=9D= =ED=95=A0 =EB=95=8C=EB=A7=88=EB=8B=A4 =EA=B7=B8 =EC=98=81=ED=96=A5=EC=9D=84= =EC=A0=84=ED=8C=8C=EC=8B=9C=ED=82=A4=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90,= =ED=95=B4=EB=8B=B9 -=EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=80 =EB=A9=94=EB=AA=A8= =EB=A6=AC=EC=97=90 =EC=8B=A4=EC=A0=9C=EB=A1=9C =EC=95=A1=EC=84=B8=EC=8A=A4= =EB=A5=BC =ED=95=9C=EA=B2=83=EC=B2=98=EB=9F=BC =EB=82=98=ED=83=80=EB=82=A0 = =EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4. - -CPU =EC=BD=94=EC=96=B4=EB=8A=94 =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=EC=9D= =98 =EC=9D=B8=EA=B3=BC=EC=84=B1=EC=9D=B4 =EC=9C=A0=EC=A7=80=EB=90=9C=EB=8B= =A4=EA=B3=A0=EB=A7=8C =EC=97=AC=EA=B2=A8=EC=A7=84=EB=8B=A4=EB=A9=B4 =EC=9D= =B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EB=93=A4=EC=9D=84 =EC=96=B4=EB=96= =A4 -=EC=88=9C=EC=84=9C=EB=A1=9C=EB=93=A0 =EC=9E=AC=EB=B0=B0=EC=B9=98=ED=95=B4= =EC=84=9C =EC=88=98=ED=96=89=ED=95=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88= =EB=8B=A4. =EC=9D=BC=EB=B6=80 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85= =98=EB=93=A4=EC=9D=80 =EB=A1=9C=EB=93=9C=EB=82=98 =EC=8A=A4=ED=86=A0=EC=96= =B4 -=EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EB=A7=8C=EB=93=9C= =EB=8A=94=EB=8D=B0 =EC=9D=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EB=93=A4=EC=9D=80 =EC=9D=B4=ED=9B=84 =EC=88=98=ED=96=89=EB=90=A0 =EB=A9=94= =EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4 =ED=81=90=EC=97=90 =EB=93=A4= =EC=96=B4=EA=B0=80=EA=B2=8C -=EB=90=A9=EB=8B=88=EB=8B=A4. =EC=BD=94=EC=96=B4=EB=8A=94 =EC=9D=B4 =EC=98= =A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84 =ED=95=B4=EB=8B= =B9 =ED=81=90=EC=97=90 =EC=96=B4=EB=96=A4 =EC=88=9C=EC=84=9C=EB=A1=9C=EB=93= =A0 =EC=9B=90=ED=95=98=EB=8A=94=EB=8C=80=EB=A1=9C =EB=84=A3=EC=9D=84 =EC=88= =98 -=EC=9E=88=EA=B3=A0, =EB=8B=A4=EB=A5=B8 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F= =AD=EC=85=98=EC=9D=98 =EC=99=84=EB=A3=8C=EB=A5=BC =EA=B8=B0=EB=8B=A4=EB=A6= =AC=EB=8F=84=EB=A1=9D =EA=B0=95=EC=A0=9C=EB=90=98=EA=B8=B0 =EC=A0=84=EA=B9= =8C=EC=A7=80=EB=8A=94 =EC=88=98=ED=96=89=EC=9D=84 =EA=B3=84=EC=86=8D=ED=95= =A9=EB=8B=88=EB=8B=A4. - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =ED=95=98= =EB=8A=94 =EC=9D=BC=EC=9D=80 CPU =EC=AA=BD=EC=97=90=EC=84=9C =EB=A9=94=EB= =AA=A8=EB=A6=AC =EC=AA=BD=EC=9C=BC=EB=A1=9C =EB=84=98=EC=96=B4=EA=B0=80=EB= =8A=94 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=98 =EC=88=9C=EC=84=9C, -=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EA=B7=B8 =EC=95=A1=EC=84=B8=EC=8A=A4=EC=9D=98= =EA=B2=B0=EA=B3=BC=EA=B0=80 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=98 =EB=8B=A4= =EB=A5=B8 =EA=B4=80=EC=B0=B0=EC=9E=90=EB=93=A4=EC=97=90=EA=B2=8C =EC=9D=B8= =EC=A7=80=EB=90=98=EB=8A=94 =EC=88=9C=EC=84=9C=EB=A5=BC =EC=A0=9C=EC=96=B4= =ED=95=98=EB=8A=94 -=EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4. - -[!] CPU =EB=93=A4=EC=9D=80 =ED=95=AD=EC=83=81 =EA=B7=B8=EB=93=A4 =EC=9E=90= =EC=8B=A0=EC=9D=98 =EB=A1=9C=EB=93=9C=EC=99=80 =EC=8A=A4=ED=86=A0=EC=96=B4= =EB=8A=94 =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8 =EC=88=9C=EC=84=9C=EB=8C=80= =EB=A1=9C =EC=9D=BC=EC=96=B4=EB=82=9C =EA=B2=83=EC=9C=BC=EB=A1=9C -=EB=B3=B4=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=97=90, =EC=A3=BC=EC=96=B4=EC=A7= =84 CPU =EB=82=B4=EC=97=90=EC=84=9C=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC = =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=A0 =ED=95=84= =EC=9A=94=EA=B0=80 _=EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4_. - -[!] MMIO =EB=82=98 =EB=8B=A4=EB=A5=B8 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4= =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=80 =EC=BA=90=EC=8B=9C =EC=8B=9C= =EC=8A=A4=ED=85=9C=EC=9D=84 =EC=9A=B0=ED=9A=8C=ED=95=A0 =EC=88=98=EB=8F=84 = =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9A=B0=ED=9A=8C -=EC=97=AC=EB=B6=80=EB=8A=94 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EA=B0=80 = =EC=95=A1=EC=84=B8=EC=8A=A4 =EB=90=98=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC = =EC=9C=88=EB=8F=84=EC=9A=B0=EC=9D=98 =ED=8A=B9=EC=84=B1=EC=97=90 =EC=9D=98= =ED=95=B4 =EA=B2=B0=EC=A0=95=EB=90=A0 =EC=88=98=EB=8F=84 =EC=9E=88=EA=B3=A0= , CPU -=EA=B0=80 =EA=B0=80=EC=A7=80=EA=B3=A0 =EC=9E=88=EC=9D=84 =EC=88=98 =EC=9E= =88=EB=8A=94 =ED=8A=B9=EC=88=98=ED=95=9C =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A= =A4 =ED=86=B5=EC=8B=A0 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D= =98 =EC=82=AC=EC=9A=A9=EC=97=90 =EC=9D=98=ED=95=B4=EC=84=9C =EA=B2=B0=EC=A0= =95=EB=90=A0 -=EC=88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80=EC=84=B1 VS DMA ------------------- - -=EB=AA=A8=EB=93=A0 =EC=8B=9C=EC=8A=A4=ED=85=9C=EC=9D=B4 DMA =EB=A5=BC =ED= =95=98=EB=8A=94 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EC=97=90 =EB=8C=80=ED= =95=B4=EC=84=9C=EA=B9=8C=EC=A7=80 =EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80=EC= =84=B1=EC=9D=84 =EC=9C=A0=EC=A7=80=ED=95=98=EC=A7=80=EB=8A=94 -=EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. =EA=B7=B8=EB=9F=B0 =EA=B2=BD=EC=9A= =B0, DMA =EB=A5=BC =EC=8B=9C=EB=8F=84=ED=95=98=EB=8A=94 =EB=94=94=EB=B0=94= =EC=9D=B4=EC=8A=A4=EB=8A=94 RAM =EC=9C=BC=EB=A1=9C=EB=B6=80=ED=84=B0 =EC=9E= =98=EB=AA=BB=EB=90=9C =EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC -=EC=9D=BD=EC=9D=84 =EC=88=98 =EC=9E=88=EB=8A=94=EB=8D=B0, =EB=8D=94=ED=8B= =B0 =EC=BA=90=EC=8B=9C =EB=9D=BC=EC=9D=B8=EC=9D=B4 CPU =EC=9D=98 =EC=BA=90= =EC=8B=9C=EC=97=90 =EB=A8=B8=EB=AC=B4=EB=A5=B4=EA=B3=A0 =EC=9E=88=EA=B3=A0,= =EB=B0=94=EB=80=90 =EA=B0=92=EC=9D=B4 =EC=95=84=EC=A7=81 -RAM =EC=97=90 =EC=8D=A8=EC=A7=80=EC=A7=80 =EC=95=8A=EC=95=98=EC=9D=84 =EC= =88=98 =EC=9E=88=EA=B8=B0 =EB=95=8C=EB=AC=B8=EC=9E=85=EB=8B=88=EB=8B=A4. = =EC=9D=B4 =EB=AC=B8=EC=A0=9C=EB=A5=BC =ED=95=B4=EA=B2=B0=ED=95=98=EA=B8=B0 = =EC=9C=84=ED=95=B4=EC=84=A0, =EC=BB=A4=EB=84=90=EC=9D=98 -=EC=A0=81=EC=A0=88=ED=95=9C =EB=B6=80=EB=B6=84=EC=97=90=EC=84=9C =EA=B0=81= CPU =EC=BA=90=EC=8B=9C=EC=9D=98 =EB=AC=B8=EC=A0=9C=EB=90=98=EB=8A=94 =EB= =B9=84=ED=8A=B8=EB=93=A4=EC=9D=84 =ED=94=8C=EB=9F=AC=EC=8B=9C (flush) =EC= =8B=9C=EC=BC=9C=EC=95=BC=EB=A7=8C =ED=95=A9=EB=8B=88=EB=8B=A4 -(=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EA=B7=B8=EA=B2=83=EB=93=A4=EC=9D=84 =EB=AC= =B4=ED=9A=A8=ED=99=94 - invalidation - =EC=8B=9C=ED=82=AC =EC=88=98=EB=8F= =84 =EC=9E=88=EA=B2=A0=EC=A3=A0). - -=EB=98=90=ED=95=9C, =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EC=97=90 =EC=9D= =98=ED=95=B4 RAM =EC=97=90 DMA =EB=A1=9C =EC=93=B0=EC=97=AC=EC=A7=84 =EA=B0= =92=EC=9D=80 =EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4=EA=B0=80 =EC=93=B0=EA=B8= =B0=EB=A5=BC =EC=99=84=EB=A3=8C=ED=95=9C =ED=9B=84=EC=97=90 -CPU =EC=9D=98 =EC=BA=90=EC=8B=9C=EC=97=90=EC=84=9C RAM =EC=9C=BC=EB=A1=9C = =EC=93=B0=EC=97=AC=EC=A7=80=EB=8A=94 =EB=8D=94=ED=8B=B0 =EC=BA=90=EC=8B=9C = =EB=9D=BC=EC=9D=B8=EC=97=90 =EC=9D=98=ED=95=B4 =EB=8D=AE=EC=96=B4=EC=8D=A8= =EC=A7=88 =EC=88=98=EB=8F=84 =EC=9E=88=EA=B3=A0, CPU -=EC=9D=98 =EC=BA=90=EC=8B=9C=EC=97=90 =EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94= =EC=BA=90=EC=8B=9C =EB=9D=BC=EC=9D=B8=EC=9D=B4 =ED=95=B4=EB=8B=B9 =EC=BA= =90=EC=8B=9C=EC=97=90=EC=84=9C =EC=82=AD=EC=A0=9C=EB=90=98=EA=B3=A0 =EB=8B= =A4=EC=8B=9C =EA=B0=92=EC=9D=84 =EC=9D=BD=EC=96=B4=EB=93=A4=EC=9D=B4=EA=B8= =B0 -=EC=A0=84=EA=B9=8C=EC=A7=80=EB=8A=94 RAM =EC=9D=B4 =EC=97=85=EB=8D=B0=EC= =9D=B4=ED=8A=B8 =EB=90=98=EC=97=88=EB=8B=A4=EB=8A=94 =EC=82=AC=EC=8B=A4 =EC= =9E=90=EC=B2=B4=EA=B0=80 =EC=88=A8=EA=B2=A8=EC=A0=B8 =EB=B2=84=EB=A6=B4 =EC= =88=98=EB=8F=84 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4 -=EB=AC=B8=EC=A0=9C=EB=A5=BC =ED=95=B4=EA=B2=B0=ED=95=98=EA=B8=B0 =EC=9C=84= =ED=95=B4=EC=84=A0, =EC=BB=A4=EB=84=90=EC=9D=98 =EC=A0=81=EC=A0=88=ED=95=9C= =EB=B6=80=EB=B6=84=EC=97=90=EC=84=9C =EA=B0=81 CPU =EC=9D=98 =EC=BA=90=EC= =8B=9C =EC=95=88=EC=9D=98 =EB=AC=B8=EC=A0=9C=EA=B0=80 =EB=90=98=EB=8A=94 -=EB=B9=84=ED=8A=B8=EB=93=A4=EC=9D=84 =EB=AC=B4=ED=9A=A8=ED=99=94 =EC=8B=9C= =EC=BC=9C=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4. - -=EC=BA=90=EC=8B=9C =EA=B4=80=EB=A6=AC=EC=97=90 =EB=8C=80=ED=95=9C =EB=8D= =94 =EB=A7=8E=EC=9D=80 =EC=A0=95=EB=B3=B4=EB=A5=BC =EC=9C=84=ED=95=B4=EC=84= =A0 Documentation/core-api/cachetlb.rst =EB=A5=BC -=EC=B0=B8=EA=B3=A0=ED=95=98=EC=84=B8=EC=9A=94. - - -=EC=BA=90=EC=8B=9C =EC=9D=BC=EA=B4=80=EC=84=B1 VS MMIO -------------------- - -Memory mapped I/O =EB=8A=94 =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C = CPU =EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EA=B3=B5=EA=B0=84 =EB=82=B4=EC= =9D=98 =ED=95=9C =EC=9C=88=EB=8F=84=EC=9A=B0=EC=9D=98 =ED=8A=B9=EC=A0=95 = =EB=B6=80=EB=B6=84 -=EB=82=B4=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=A7=80=EC=97=AD=EC=97=90= =EC=9D=B4=EB=A3=A8=EC=96=B4=EC=A7=80=EB=8A=94=EB=8D=B0, =EC=9D=B4 =EC=9C= =88=EB=8F=84=EC=9A=B0=EB=8A=94 =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9D=B8, RAM = =EC=9C=BC=EB=A1=9C =ED=96=A5=ED=95=98=EB=8A=94 -=EC=9C=88=EB=8F=84=EC=9A=B0=EC=99=80=EB=8A=94 =EB=8B=A4=EB=A5=B8 =ED=8A=B9= =EC=84=B1=EC=9D=84 =EA=B0=96=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EA=B7=B8=EB=9F=B0 =ED=8A=B9=EC=84=B1 =EA=B0=80=EC=9A=B4=EB=8D=B0 =ED=95= =98=EB=82=98=EB=8A=94, =EC=9D=BC=EB=B0=98=EC=A0=81=EC=9C=BC=EB=A1=9C =EA=B7= =B8=EB=9F=B0 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=8A=94 =EC=BA=90=EC=8B=9C=EB=A5= =BC =EC=99=84=EC=A0=84=ED=9E=88 =EC=9A=B0=ED=9A=8C=ED=95=98=EA=B3=A0 -=EB=94=94=EB=B0=94=EC=9D=B4=EC=8A=A4 =EB=B2=84=EC=8A=A4=EB=A1=9C =EA=B3=A7= =EB=B0=94=EB=A1=9C =ED=96=A5=ED=95=9C=EB=8B=A4=EB=8A=94 =EA=B2=83=EC=9E=85= =EB=8B=88=EB=8B=A4. =EC=9D=B4 =EB=A7=90=EC=9D=80 MMIO =EC=95=A1=EC=84=B8= =EC=8A=A4=EB=8A=94 =EB=A8=BC=EC=A0=80 -=EC=8B=9C=EC=9E=91=EB=90=98=EC=96=B4=EC=84=9C =EC=BA=90=EC=8B=9C=EC=97=90= =EC=84=9C =EC=99=84=EB=A3=8C=EB=90=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1= =EC=84=B8=EC=8A=A4=EB=A5=BC =EC=B6=94=EC=9B=94=ED=95=A0 =EC=88=98 =EC=9E=88= =EB=8B=A4=EB=8A=94 =EB=9C=BB=EC=9E=85=EB=8B=88=EB=8B=A4. =EC=9D=B4=EB=9F= =B0 -=EA=B2=BD=EC=9A=B0=EC=97=94 =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC= =EC=96=B4=EB=A7=8C=EC=9C=BC=EB=A1=9C=EB=8A=94 =EC=B6=A9=EB=B6=84=EC=B9=98 = =EC=95=8A=EA=B3=A0, =EB=A7=8C=EC=95=BD =EC=BA=90=EC=8B=9C=EB=90=9C =EB=A9= =94=EB=AA=A8=EB=A6=AC =EC=93=B0=EA=B8=B0 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D= =B4=EC=85=98=EA=B3=BC -MMIO =EC=95=A1=EC=84=B8=EC=8A=A4=EA=B0=80 =EC=96=B4=EB=96=A4 =EB=B0=A9=EC= =8B=9D=EC=9C=BC=EB=A1=9C=EB=93=A0 =EC=9D=98=EC=A1=B4=EC=A0=81=EC=9D=B4=EB= =9D=BC=EB=A9=B4 =ED=95=B4=EB=8B=B9 =EC=BA=90=EC=8B=9C=EB=8A=94 =EB=91=90 = =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98 =EC=82=AC=EC=9D=B4=EC=97=90 -=EB=B9=84=EC=9B=8C=EC=A0=B8(flush)=EC=95=BC=EB=A7=8C =ED=95=A9=EB=8B=88=EB= =8B=A4. - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -CPU =EB=93=A4=EC=9D=B4 =EC=A0=80=EC=A7=80=EB=A5=B4=EB=8A=94 =EC=9D=BC=EB= =93=A4 -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=98=EB=A8=B8=EB=8A=94 CPU =EA=B0=80 =EB= =A9=94=EB=AA=A8=EB=A6=AC =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB= =93=A4=EC=9D=84 =EC=A0=95=ED=99=95=ED=9E=88 =EC=9A=94=EC=B2=AD=ED=95=9C=EB= =8C=80=EB=A1=9C =EC=88=98=ED=96=89=ED=95=B4 =EC=A4=84 =EA=B2=83=EC=9D=B4=EB= =9D=BC=EA=B3=A0 -=EC=83=9D=EA=B0=81=ED=95=98=EB=8A=94=EB=8D=B0, =EC=98=88=EB=A5=BC =EB=93= =A4=EC=96=B4 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=80 =EC=BD=94=EB=93= =9C=EB=A5=BC CPU =EC=97=90=EA=B2=8C =EB=84=98=EA=B8=B4=EB=8B=A4=EB=A9=B4: - - a =3D READ_ONCE(*A); - WRITE_ONCE(*B, b); - c =3D READ_ONCE(*C); - d =3D READ_ONCE(*D); - WRITE_ONCE(*E, e); - -CPU =EB=8A=94 =EB=8B=A4=EC=9D=8C =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC= =85=98=EC=9D=84 =EC=B2=98=EB=A6=AC=ED=95=98=EA=B8=B0 =EC=A0=84=EC=97=90 =ED= =98=84=EC=9E=AC=EC=9D=98 =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC= =9D=84 =EC=9C=84=ED=95=9C =EB=A9=94=EB=AA=A8=EB=A6=AC -=EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EC=99=84=EB=A3=8C= =ED=95=A0 =EA=B2=83=EC=9D=B4=EB=9D=BC =EC=83=9D=EA=B0=81=ED=95=98=EA=B3=A0,= =EB=94=B0=EB=9D=BC=EC=84=9C =EC=8B=9C=EC=8A=A4=ED=85=9C =EC=99=B8=EB=B6=80= =EC=97=90=EC=84=9C =EA=B4=80=EC=B0=B0=ED=95=98=EA=B8=B0=EC=97=90=EB=8F=84 = =EC=A0=95=ED=95=B4=EC=A7=84 -=EC=88=9C=EC=84=9C=EB=8C=80=EB=A1=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4= =EC=85=98=EC=9D=B4 =EC=88=98=ED=96=89=EB=90=A0 =EA=B2=83=EC=9C=BC=EB=A1=9C = =EC=98=88=EC=83=81=ED=95=A9=EB=8B=88=EB=8B=A4: - - LOAD *A, STORE *B, LOAD *C, LOAD *D, STORE *E. - - -=EB=8B=B9=EC=97=B0=ED=95=98=EC=A7=80=EB=A7=8C, =EC=8B=A4=EC=A0=9C=EB=A1=9C= =EB=8A=94 =ED=9B=A8=EC=94=AC =EC=97=89=EB=A7=9D=EC=9E=85=EB=8B=88=EB=8B=A4.= =EB=A7=8E=EC=9D=80 CPU =EC=99=80 =EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC=EC= =97=90=EC=84=9C =EC=95=9E=EC=9D=98 =EA=B0=80=EC=A0=95=EC=9D=80 -=EC=84=B1=EB=A6=BD=ED=95=98=EC=A7=80 =EB=AA=BB=ED=95=98=EB=8A=94=EB=8D=B0 = =EA=B7=B8 =EC=9D=B4=EC=9C=A0=EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99= =EC=8A=B5=EB=8B=88=EB=8B=A4: - - (*) =EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB= =93=A4=EC=9D=80 =EC=8B=A4=ED=96=89=EC=9D=84 =EA=B3=84=EC=86=8D =ED=95=B4=EB= =82=98=EA=B0=80=EA=B8=B0 =EC=9C=84=ED=95=B4 =EA=B3=A7=EB=B0=94=EB=A1=9C =EC= =99=84=EB=A3=8C=EB=90=A0 =ED=95=84=EC=9A=94=EA=B0=80 =EC=9E=88=EB=8A=94 - =EA=B2=BD=EC=9A=B0=EA=B0=80 =EB=A7=8E=EC=9D=80 =EB=B0=98=EB=A9=B4, = =EC=8A=A4=ED=86=A0=EC=96=B4 =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98= =EB=93=A4=EC=9D=80 =EC=A2=85=EC=A2=85 =EB=B3=84=EB=8B=A4=EB=A5=B8 =EB=AC=B8= =EC=A0=9C =EC=97=86=EC=9D=B4 =EC=9C=A0=EC=98=88=EB=90=A0 =EC=88=98 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4; - - (*) =EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB= =93=A4=EC=9D=80 =EC=98=88=EC=B8=A1=EC=A0=81=EC=9C=BC=EB=A1=9C =EC=88=98=ED= =96=89=EB=90=A0 =EC=88=98 =EC=9E=88=EC=9C=BC=EB=A9=B0, =ED=95=84=EC=9A=94= =EC=97=86=EB=8A=94 =EB=A1=9C=EB=93=9C=EC=98=80=EB=8B=A4=EA=B3=A0 - =EC=A6=9D=EB=AA=85=EB=90=9C =EC=98=88=EC=B8=A1=EC=A0=81 =EB=A1=9C=EB= =93=9C=EC=9D=98 =EA=B2=B0=EA=B3=BC=EB=8A=94 =EB=B2=84=EB=A0=A4=EC=A7=91=EB= =8B=88=EB=8B=A4; - - (*) =EB=A1=9C=EB=93=9C =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB= =93=A4=EC=9D=80 =EC=98=88=EC=B8=A1=EC=A0=81=EC=9C=BC=EB=A1=9C =EC=88=98=ED= =96=89=EB=90=A0 =EC=88=98 =EC=9E=88=EC=9C=BC=EB=AF=80=EB=A1=9C, =EC=98=88= =EC=83=81=EB=90=9C =EC=9D=B4=EB=B2=A4=ED=8A=B8=EC=9D=98 - =EC=8B=9C=ED=80=80=EC=8A=A4=EC=99=80 =EB=8B=A4=EB=A5=B8 =EC=8B=9C=EA= =B0=84=EC=97=90 =EB=A1=9C=EB=93=9C=EA=B0=80 =EC=9D=B4=EB=A4=84=EC=A7=88 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4; - - (*) =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4 =EC=88=9C=EC= =84=9C=EB=8A=94 CPU =EB=B2=84=EC=8A=A4=EC=99=80 =EC=BA=90=EC=8B=9C=EB=A5=BC= =EC=A2=80 =EB=8D=94 =EC=9E=98 =EC=82=AC=EC=9A=A9=ED=95=A0 =EC=88=98 =EC=9E= =88=EB=8F=84=EB=A1=9D =EC=9E=AC=EB=B0=B0=EC=B9=98 - =EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4; - - (*) =EB=A1=9C=EB=93=9C=EC=99=80 =EC=8A=A4=ED=86=A0=EC=96=B4=EB=8A=94 =EC= =9D=B8=EC=A0=91=ED=95=9C =EC=9C=84=EC=B9=98=EC=97=90=EC=9D=98 =EC=95=A1=EC= =84=B8=EC=8A=A4=EB=93=A4=EC=9D=84 =EC=9D=BC=EA=B4=84=EC=A0=81=EC=9C=BC=EB= =A1=9C =EC=B2=98=EB=A6=AC=ED=95=A0 =EC=88=98 =EC=9E=88=EB=8A=94 - =EB=A9=94=EB=AA=A8=EB=A6=AC=EB=82=98 I/O =ED=95=98=EB=93=9C=EC=9B=A8= =EC=96=B4 (=EB=A9=94=EB=AA=A8=EB=A6=AC=EC=99=80 PCI =EB=94=94=EB=B0=94=EC= =9D=B4=EC=8A=A4 =EB=91=98 =EB=8B=A4 =EC=9D=B4=EA=B2=8C =EA=B0=80=EB=8A=A5= =ED=95=A0 =EC=88=98 - =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4) =EC=97=90 =EB=8C=80=ED=95=B4 = =EC=9A=94=EC=B2=AD=EB=90=98=EB=8A=94 =EA=B2=BD=EC=9A=B0, =EA=B0=9C=EB=B3=84= =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84 =EC=9C=84=ED=95=9C = =ED=8A=B8=EB=9E=9C=EC=9E=AD=EC=85=98 =EC=84=A4=EC=A0=95 - =EB=B9=84=EC=9A=A9=EC=9D=84 =EC=95=84=EB=81=BC=EA=B8=B0 =EC=9C=84=ED= =95=B4 =EC=A1=B0=ED=95=A9=EB=90=98=EC=96=B4 =EC=8B=A4=ED=96=89=EB=90=A0 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4; =EA=B7=B8=EB=A6=AC=EA=B3=A0 - - (*) =ED=95=B4=EB=8B=B9 CPU =EC=9D=98 =EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=BA= =90=EC=8B=9C=EA=B0=80 =EC=88=9C=EC=84=9C=EC=97=90 =EC=98=81=ED=96=A5=EC=9D= =84 =EB=81=BC=EC=B9=A0 =EC=88=98=EB=8F=84 =EC=9E=88=EA=B3=A0, =EC=BA=90=EC= =8B=9C =EC=9D=BC=EA=B4=80=EC=84=B1 - =EB=A9=94=EC=BB=A4=EB=8B=88=EC=A6=98=EC=9D=B4 - =EC=8A=A4=ED=86=A0=EC= =96=B4=EA=B0=80 =EC=8B=A4=EC=A0=9C=EB=A1=9C =EC=BA=90=EC=8B=9C=EC=97=90 =EB= =8F=84=EB=8B=AC=ED=95=9C=EB=8B=A4=EB=A9=B4 - =EC=9D=B4 =EB=AC=B8=EC=A0=9C= =EB=A5=BC =EC=99=84=ED=99=94=EC=8B=9C=ED=82=AC =EC=88=98=EB=8A=94 - =EC=9E=88=EC=A7=80=EB=A7=8C =EC=9D=B4 =EC=9D=BC=EA=B4=80=EC=84=B1 =EA= =B4=80=EB=A6=AC=EA=B0=80 =EB=8B=A4=EB=A5=B8 CPU =EB=93=A4=EC=97=90=EB=8F=84= =EA=B0=99=EC=9D=80 =EC=88=9C=EC=84=9C=EB=A1=9C =EC=A0=84=EB=8B=AC=EB=90=9C= =EB=8B=A4=EB=8A=94 =EB=B3=B4=EC=9E=A5=EC=9D=80 - =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4. - -=EB=94=B0=EB=9D=BC=EC=84=9C, =EC=95=9E=EC=9D=98 =EC=BD=94=EB=93=9C=EC=97= =90 =EB=8C=80=ED=95=B4 =EB=8B=A4=EB=A5=B8 CPU =EA=B0=80 =EB=B3=B4=EB=8A=94 = =EA=B2=B0=EA=B3=BC=EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=84 = =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - LOAD *A, ..., LOAD {*C,*D}, STORE *E, STORE *B - - ("LOAD {*C,*D}" =EB=8A=94 =EC=A1=B0=ED=95=A9=EB=90=9C =EB=A1=9C=EB=93=9C= =EC=9E=85=EB=8B=88=EB=8B=A4) - - -=ED=95=98=EC=A7=80=EB=A7=8C, CPU =EB=8A=94 =EC=8A=A4=EC=8A=A4=EB=A1=9C=EB= =8A=94 =EC=9D=BC=EA=B4=80=EC=A0=81=EC=9D=BC =EA=B2=83=EC=9D=84 =EB=B3=B4=EC= =9E=A5=ED=95=A9=EB=8B=88=EB=8B=A4: CPU _=EC=9E=90=EC=8B=A0_ =EC=9D=98 =EC= =95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=80 -=EC=9E=90=EC=8B=A0=EC=97=90=EA=B2=8C=EB=8A=94 =EB=A9=94=EB=AA=A8=EB=A6=AC = =EB=B0=B0=EB=A6=AC=EC=96=B4=EA=B0=80 =EC=97=86=EC=9D=8C=EC=97=90=EB=8F=84 = =EB=B6=88=EA=B5=AC=ED=95=98=EA=B3=A0 =EC=A0=95=ED=99=95=ED=9E=88 =EC=88=9C= =EC=84=9C =EC=84=B8=EC=9B=8C=EC=A7=84 =EA=B2=83=EC=9C=BC=EB=A1=9C =EB=B3=B4= =EC=97=AC=EC=A7=88 -=EA=B2=83=EC=9E=85=EB=8B=88=EB=8B=A4. =EC=98=88=EB=A5=BC =EB=93=A4=EC=96= =B4 =EB=8B=A4=EC=9D=8C=EC=9D=98 =EC=BD=94=EB=93=9C=EA=B0=80 =EC=A3=BC=EC=96= =B4=EC=A1=8C=EB=8B=A4=EB=A9=B4: - - U =3D READ_ONCE(*A); - WRITE_ONCE(*A, V); - WRITE_ONCE(*A, W); - X =3D READ_ONCE(*A); - WRITE_ONCE(*A, Y); - Z =3D READ_ONCE(*A); - -=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EC=99=B8=EB=B6=80=EC=9D=98 =EC=98=81=ED=96=A5= =EC=97=90 =EC=9D=98=ED=95=9C =EA=B0=84=EC=84=AD=EC=9D=B4 =EC=97=86=EB=8B=A4= =EA=B3=A0 =EA=B0=80=EC=A0=95=ED=95=98=EB=A9=B4, =EC=B5=9C=EC=A2=85 =EA=B2= =B0=EA=B3=BC=EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 -=EB=82=98=ED=83=80=EB=82=A0 =EA=B2=83=EC=9D=B4=EB=9D=BC=EA=B3=A0 =EC=98=88= =EC=83=81=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - U =3D=3D *A =EC=9D=98 =EC=B5=9C=EC=B4=88 =EA=B0=92 - X =3D=3D W - Z =3D=3D Y - *A =3D=3D Y - -=EC=95=9E=EC=9D=98 =EC=BD=94=EB=93=9C=EB=8A=94 CPU =EA=B0=80 =EB=8B=A4=EC= =9D=8C=EC=9D=98 =EB=A9=94=EB=AA=A8=EB=A6=AC =EC=95=A1=EC=84=B8=EC=8A=A4 =EC= =8B=9C=ED=80=80=EC=8A=A4=EB=A5=BC =EB=A7=8C=EB=93=A4=EB=8F=84=EB=A1=9D =ED= =95=A0=EA=B2=81=EB=8B=88=EB=8B=A4: - - U=3DLOAD *A, STORE *A=3DV, STORE *A=3DW, X=3DLOAD *A, STORE *A=3DY, Z=3DL= OAD *A - -=ED=95=98=EC=A7=80=EB=A7=8C, =EB=B3=84=EB=8B=A4=EB=A5=B8 =EA=B0=9C=EC=9E= =85=EC=9D=B4 =EC=97=86=EA=B3=A0 =ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=EC=9D= =98 =EC=8B=9C=EC=95=BC=EC=97=90 =EC=9D=B4 =EC=84=B8=EC=83=81=EC=9D=B4 =EC= =97=AC=EC=A0=84=ED=9E=88 =EC=9D=BC=EA=B4=80=EC=A0=81=EC=9D=B4=EB=9D=BC=EA= =B3=A0 -=EB=B3=B4=EC=9D=B8=EB=8B=A4=EB=8A=94 =EB=B3=B4=EC=9E=A5=EB=A7=8C =EC=A7=80= =EC=BC=9C=EC=A7=84=EB=8B=A4=EB=A9=B4 =EC=9D=B4 =EC=8B=9C=ED=80=80=EC=8A=A4= =EB=8A=94 =EC=96=B4=EB=96=A4 =EC=A1=B0=ED=95=A9=EC=9C=BC=EB=A1=9C=EB=93=A0 = =EC=9E=AC=EA=B5=AC=EC=84=B1=EB=90=A0 =EC=88=98 =EC=9E=88=EC=9C=BC=EB=A9=B0,= =EA=B0=81 -=EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D=80 =ED=95=A9=EC=B3=90=EC=A7=80= =EA=B1=B0=EB=82=98 =EB=B2=84=EB=A0=A4=EC=A7=88 =EC=88=98 =EC=9E=88=EC=8A=B5= =EB=8B=88=EB=8B=A4. =EC=9D=BC=EB=B6=80 =EC=95=84=ED=82=A4=ED=85=8D=EC=B3= =90=EC=97=90=EC=84=9C CPU =EB=8A=94 =EA=B0=99=EC=9D=80 =EC=9C=84=EC=B9=98= =EC=97=90 -=EB=8C=80=ED=95=9C =EC=97=B0=EC=86=8D=EC=A0=81=EC=9D=B8 =EB=A1=9C=EB=93=9C= =EC=98=A4=ED=8D=BC=EB=A0=88=EC=9D=B4=EC=85=98=EB=93=A4=EC=9D=84 =EC=9E=AC= =EB=B0=B0=EC=B9=98 =ED=95=A0 =EC=88=98 =EC=9E=88=EA=B8=B0 =EB=95=8C=EB=AC= =B8=EC=97=90 =EC=95=9E=EC=9D=98 =EC=98=88=EC=97=90=EC=84=9C=EC=9D=98 -READ_ONCE() =EC=99=80 WRITE_ONCE() =EB=8A=94 =EB=B0=98=EB=93=9C=EC=8B=9C = =EC=A1=B4=EC=9E=AC=ED=95=B4=EC=95=BC =ED=95=A8=EC=9D=84 =EC=95=8C=EC=95=84= =EB=91=90=EC=84=B8=EC=9A=94. =EA=B7=B8=EB=9F=B0 =EC=A2=85=EB=A5=98=EC=9D= =98 -=EC=95=84=ED=82=A4=ED=85=8D=EC=B3=90=EC=97=90=EC=84=9C READ_ONCE() =EC=99= =80 WRITE_ONCE() =EB=8A=94 =EC=9D=B4 =EB=AC=B8=EC=A0=9C=EB=A5=BC =EB=A7=89= =EA=B8=B0 =EC=9C=84=ED=95=B4 =ED=95=84=EC=9A=94=ED=95=9C =EC=9D=BC=EC=9D=84 -=EB=AD=90=EA=B0=80 =EB=90=90=EB=93=A0=EC=A7=80 =ED=95=98=EA=B2=8C =EB=90= =98=EB=8A=94=EB=8D=B0, =EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4 Itanium =EC=97= =90=EC=84=9C=EB=8A=94 READ_ONCE() =EC=99=80 WRITE_ONCE() -=EA=B0=80 =EC=82=AC=EC=9A=A9=ED=95=98=EB=8A=94 volatile =EC=BA=90=EC=8A=A4= =ED=8C=85=EC=9D=80 GCC =EA=B0=80 =EA=B7=B8=EB=9F=B0 =EC=9E=AC=EB=B0=B0=EC= =B9=98=EB=A5=BC =EB=B0=A9=EC=A7=80=ED=95=98=EB=8A=94 =ED=8A=B9=EC=88=98 =EC= =9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC=9D=B8 -ld.acq =EC=99=80 stl.rel =EC=9D=B8=EC=8A=A4=ED=8A=B8=EB=9F=AD=EC=85=98=EC= =9D=84 =EA=B0=81=EA=B0=81 =EB=A7=8C=EB=93=A4=EC=96=B4 =EB=82=B4=EB=8F=84=EB= =A1=9D =ED=95=A9=EB=8B=88=EB=8B=A4. - -=EC=BB=B4=ED=8C=8C=EC=9D=BC=EB=9F=AC =EC=97=AD=EC=8B=9C =EC=9D=B4 =EC=8B= =9C=ED=80=80=EC=8A=A4=EC=9D=98 =EC=95=A1=EC=84=B8=EC=8A=A4=EB=93=A4=EC=9D= =84 CPU =EA=B0=80 =EB=B3=B4=EA=B8=B0=EB=8F=84 =EC=A0=84=EC=97=90 =ED=95=A9= =EC=B9=98=EA=B1=B0=EB=82=98 =EB=B2=84=EB=A6=AC=EA=B1=B0=EB=82=98 =EB=92=A4= =EB=A1=9C -=EB=AF=B8=EB=A4=84=EB=B2=84=EB=A6=B4 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88= =EB=8B=A4. - -=EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4: - - *A =3D V; - *A =3D W; - -=EB=8A=94 =EB=8B=A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =EB=B3=80=ED=98= =95=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - *A =3D W; - -=EB=94=B0=EB=9D=BC=EC=84=9C, =EC=93=B0=EA=B8=B0 =EB=B0=B0=EB=A6=AC=EC=96= =B4=EB=82=98 WRITE_ONCE() =EA=B0=80 =EC=97=86=EB=8B=A4=EB=A9=B4 *A =EB=A1= =9C=EC=9D=98 V =EA=B0=92=EC=9D=98 =EC=A0=80=EC=9E=A5=EC=9D=98 =ED=9A=A8=EA= =B3=BC=EB=8A=94 -=EC=82=AC=EB=9D=BC=EC=A7=84=EB=8B=A4=EA=B3=A0 =EA=B0=80=EC=A0=95=EB=90=A0 = =EC=88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EB=B9=84=EC=8A=B7=ED=95= =98=EA=B2=8C: - - *A =3D Y; - Z =3D *A; - -=EB=8A=94, =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=82= =98 READ_ONCE() =EC=99=80 WRITE_ONCE() =EC=97=86=EC=9D=B4=EB=8A=94 =EB=8B= =A4=EC=9D=8C=EA=B3=BC =EA=B0=99=EC=9D=B4 =EB=B3=80=ED=98=95=EB=90=A0 =EC=88= =98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4: - - *A =3D Y; - Z =3D Y; - -=EA=B7=B8=EB=A6=AC=EA=B3=A0 =EC=9D=B4 LOAD =EC=98=A4=ED=8D=BC=EB=A0=88=EC= =9D=B4=EC=85=98=EC=9D=80 CPU =EB=B0=94=EA=B9=A5=EC=97=90=EB=8A=94 =EC=95=84= =EC=98=88 =EB=B3=B4=EC=9D=B4=EC=A7=80 =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EA=B7=B8=EB=A6=AC=EA=B3=A0, ALPHA =EA=B0=80 =EC=9E=88=EB=8B=A4 ---------------------- - -DEC Alpha CPU =EB=8A=94 =EA=B0=80=EC=9E=A5 =EC=99=84=ED=99=94=EB=90=9C =EB= =A9=94=EB=AA=A8=EB=A6=AC =EC=88=9C=EC=84=9C=EC=9D=98 CPU =EC=A4=91 =ED=95= =98=EB=82=98=EC=9E=85=EB=8B=88=EB=8B=A4. =EB=BF=90=EB=A7=8C =EC=95=84=EB= =8B=88=EB=9D=BC, -Alpha CPU =EC=9D=98 =EC=9D=BC=EB=B6=80 =EB=B2=84=EC=A0=84=EC=9D=80 =EB=B6= =84=ED=95=A0=EB=90=9C =EB=8D=B0=EC=9D=B4=ED=84=B0 =EC=BA=90=EC=8B=9C=EB=A5= =BC =EA=B0=80=EC=A7=80=EA=B3=A0 =EC=9E=88=EC=96=B4=EC=84=9C, =EC=9D=98=EB= =AF=B8=EC=A0=81=EC=9C=BC=EB=A1=9C -=EA=B4=80=EA=B3=84=EB=90=98=EC=96=B4 =EC=9E=88=EB=8A=94 =EB=91=90=EA=B0=9C= =EC=9D=98 =EC=BA=90=EC=8B=9C =EB=9D=BC=EC=9D=B8=EC=9D=B4 =EC=84=9C=EB=A1=9C= =EB=8B=A4=EB=A5=B8 =EC=8B=9C=EA=B0=84=EC=97=90 =EC=97=85=EB=8D=B0=EC=9D=B4= =ED=8A=B8 =EB=90=98=EB=8A=94=EA=B2=8C =EA=B0=80=EB=8A=A5=ED=95=A9=EB=8B=88= =EB=8B=A4. -=EC=9D=B4=EA=B2=8C =EC=A3=BC=EC=86=8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0= =B0=EB=A6=AC=EC=96=B4=EA=B0=80 =EC=A0=95=EB=A7=90 =ED=95=84=EC=9A=94=ED=95= =B4=EC=A7=80=EB=8A=94 =EB=B6=80=EB=B6=84=EC=9D=B8=EB=8D=B0, =EC=A3=BC=EC=86= =8C =EC=9D=98=EC=A1=B4=EC=84=B1 =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EB=A9= =94=EB=AA=A8=EB=A6=AC -=EC=9D=BC=EA=B4=80=EC=84=B1 =EC=8B=9C=EC=8A=A4=ED=85=9C=EA=B3=BC =ED=95=A8= =EA=BB=98 =EB=91=90=EA=B0=9C=EC=9D=98 =EC=BA=90=EC=8B=9C=EB=A5=BC =EB=8F=99= =EA=B8=B0=ED=99=94 =EC=8B=9C=EC=BC=9C=EC=84=9C, =ED=8F=AC=EC=9D=B8=ED=84=B0= =EB=B3=80=EA=B2=BD=EA=B3=BC =EC=83=88=EB=A1=9C=EC=9A=B4 =EB=8D=B0=EC=9D=B4= =ED=84=B0=EC=9D=98 -=EB=B0=9C=EA=B2=AC=EC=9D=84 =EC=98=AC=EB=B0=94=EB=A5=B8 =EC=88=9C=EC=84=9C= =EB=A1=9C =EC=9D=BC=EC=96=B4=EB=82=98=EA=B2=8C =ED=95=98=EA=B8=B0 =EB=95=8C= =EB=AC=B8=EC=9E=85=EB=8B=88=EB=8B=A4. - -=EB=A6=AC=EB=88=85=EC=8A=A4 =EC=BB=A4=EB=84=90=EC=9D=98 =EB=A9=94=EB=AA=A8= =EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4 =EB=AA=A8=EB=8D=B8=EC=9D=80 Alpha =EC= =97=90 =EA=B8=B0=EC=B4=88=ED=95=B4=EC=84=9C =EC=A0=95=EC=9D=98=EB=90=98=EC= =97=88=EC=8A=B5=EB=8B=88=EB=8B=A4=EB=A7=8C, v4.15 -=EB=B6=80=ED=84=B0=EB=8A=94 Alpha =EC=9A=A9 READ_ONCE() =EC=BD=94=EB=93=9C= =EB=82=B4=EC=97=90 smp_mb() =EA=B0=80 =EC=B6=94=EA=B0=80=EB=90=98=EC=96=B4= =EC=84=9C =EB=A9=94=EB=AA=A8=EB=A6=AC =EB=AA=A8=EB=8D=B8=EB=A1=9C=EC=9D=98 -Alpha =EC=9D=98 =EC=98=81=ED=96=A5=EB=A0=A5=EC=9D=B4 =ED=81=AC=EA=B2=8C = =EC=A4=84=EC=96=B4=EB=93=A4=EC=97=88=EC=8A=B5=EB=8B=88=EB=8B=A4. - - -=EA=B0=80=EC=83=81 =EB=A8=B8=EC=8B=A0 =EA=B2=8C=EC=8A=A4=ED=8A=B8 ----------------- - -=EA=B0=80=EC=83=81 =EB=A8=B8=EC=8B=A0=EC=97=90=EC=84=9C =EB=8F=99=EC=9E=91= =ED=95=98=EB=8A=94 =EA=B2=8C=EC=8A=A4=ED=8A=B8=EB=93=A4=EC=9D=80 =EA=B2=8C= =EC=8A=A4=ED=8A=B8 =EC=9E=90=EC=B2=B4=EB=8A=94 SMP =EC=A7=80=EC=9B=90 =EC= =97=86=EC=9D=B4 =EC=BB=B4=ED=8C=8C=EC=9D=BC =EB=90=98=EC=97=88=EB=8B=A4 -=ED=95=B4=EB=8F=84 SMP =EC=98=81=ED=96=A5=EC=9D=84 =EB=B0=9B=EC=9D=84 =EC= =88=98 =EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EA=B1=B4 UP =EC=BB= =A4=EB=84=90=EC=9D=84 =EC=82=AC=EC=9A=A9=ED=95=98=EB=A9=B4=EC=84=9C SMP =ED= =98=B8=EC=8A=A4=ED=8A=B8=EC=99=80 -=EA=B2=B0=EB=B6=80=EB=90=98=EC=96=B4 =EB=B0=9C=EC=83=9D=ED=95=98=EB=8A=94 = =EB=B6=80=EC=9E=91=EC=9A=A9=EC=9E=85=EB=8B=88=EB=8B=A4. =EC=9D=B4 =EA=B2= =BD=EC=9A=B0=EC=97=90=EB=8A=94 mandatory =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=A5= =BC =EC=82=AC=EC=9A=A9=ED=95=B4=EC=84=9C =EB=AC=B8=EC=A0=9C=EB=A5=BC -=ED=95=B4=EA=B2=B0=ED=95=A0 =EC=88=98 =EC=9E=88=EA=B2=A0=EC=A7=80=EB=A7=8C= =EA=B7=B8=EB=9F=B0 =ED=95=B4=EA=B2=B0=EC=9D=80 =EB=8C=80=EB=B6=80=EB=B6=84= =EC=9D=98 =EA=B2=BD=EC=9A=B0 =EC=B5=9C=EC=A0=81=EC=9D=98 =ED=95=B4=EA=B2=B0= =EC=B1=85=EC=9D=B4 =EC=95=84=EB=8B=99=EB=8B=88=EB=8B=A4. - -=EC=9D=B4 =EB=AC=B8=EC=A0=9C=EB=A5=BC =EC=99=84=EB=B2=BD=ED=95=98=EA=B2=8C= =ED=95=B4=EA=B2=B0=ED=95=98=EA=B8=B0 =EC=9C=84=ED=95=B4, =EB=A1=9C=EC=9A= =B0 =EB=A0=88=EB=B2=A8=EC=9D=98 virt_mb() =EB=93=B1=EC=9D=98 =EB=A7=A4=ED= =81=AC=EB=A1=9C=EB=A5=BC =EC=82=AC=EC=9A=A9=ED=95=A0 =EC=88=98 -=EC=9E=88=EC=8A=B5=EB=8B=88=EB=8B=A4. =EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80= SMP =EA=B0=80 =ED=99=9C=EC=84=B1=ED=99=94 =EB=90=98=EC=96=B4 =EC=9E=88=EB= =8B=A4=EB=A9=B4 smp_mb() =EB=93=B1=EA=B3=BC =EB=8F=99=EC=9D=BC=ED=95=9C =ED= =9A=A8=EA=B3=BC=EB=A5=BC -=EA=B0=96=EC=8A=B5=EB=8B=88=EB=8B=A4=EB=A7=8C, SMP =EC=99=80 SMP =EC=95=84= =EB=8B=8C =EC=8B=9C=EC=8A=A4=ED=85=9C =EB=AA=A8=EB=91=90=EC=97=90 =EB=8C=80= =ED=95=B4 =EB=8F=99=EC=9D=BC=ED=95=9C =EC=BD=94=EB=93=9C=EB=A5=BC =EB=A7=8C= =EB=93=A4=EC=96=B4=EB=83=85=EB=8B=88=EB=8B=A4. -=EC=98=88=EB=A5=BC =EB=93=A4=EC=96=B4, =EA=B0=80=EC=83=81 =EB=A8=B8=EC=8B= =A0 =EA=B2=8C=EC=8A=A4=ED=8A=B8=EB=93=A4=EC=9D=80 (SMP =EC=9D=BC =EC=88=98 = =EC=9E=88=EB=8A=94) =ED=98=B8=EC=8A=A4=ED=8A=B8=EC=99=80 =EB=8F=99=EA=B8=B0= =ED=99=94=EB=A5=BC =ED=95=A0 =EB=95=8C=EC=97=90=EB=8A=94 -smp_mb() =EA=B0=80 =EC=95=84=EB=8B=88=EB=9D=BC virt_mb() =EB=A5=BC =EC=82= =AC=EC=9A=A9=ED=95=B4=EC=95=BC =ED=95=A9=EB=8B=88=EB=8B=A4. - -=EC=9D=B4=EA=B2=83=EB=93=A4=EC=9D=80 smp_mb() =EB=A5=98=EC=9D=98 =EA=B2=83= =EB=93=A4=EA=B3=BC =EB=AA=A8=EB=93=A0 =EB=B6=80=EB=B6=84=EC=97=90=EC=84=9C = =EB=8F=99=EC=9D=BC=ED=95=98=EB=A9=B0, =ED=8A=B9=ED=9E=88, MMIO =EC=9D=98 = =EC=98=81=ED=96=A5=EC=97=90 -=EB=8C=80=ED=95=B4=EC=84=9C=EB=8A=94 =EA=B0=84=EC=97=AC=ED=95=98=EC=A7=80 = =EC=95=8A=EC=8A=B5=EB=8B=88=EB=8B=A4: MMIO =EC=9D=98 =EC=98=81=ED=96=A5=EC= =9D=84 =EC=A0=9C=EC=96=B4=ED=95=98=EB=A0=A4=EB=A9=B4, mandatory =EB=B0=B0= =EB=A6=AC=EC=96=B4=EB=A5=BC -=EC=82=AC=EC=9A=A9=ED=95=98=EC=8B=9C=EA=B8=B0 =EB=B0=94=EB=9E=8D=EB=8B=88= =EB=8B=A4. - - -=3D=3D=3D=3D=3D=3D=3D -=EC=82=AC=EC=9A=A9 =EC=98=88 -=3D=3D=3D=3D=3D=3D=3D - -=EC=88=9C=ED=99=98=EC=8B=9D =EB=B2=84=ED=8D=BC ------------ - -=EB=A9=94=EB=AA=A8=EB=A6=AC =EB=B0=B0=EB=A6=AC=EC=96=B4=EB=8A=94 =EC=88=9C= =ED=99=98=EC=8B=9D =EB=B2=84=ED=8D=BC=EB=A5=BC =EC=83=9D=EC=84=B1=EC=9E=90(= producer)=EC=99=80 =EC=86=8C=EB=B9=84=EC=9E=90(consumer) =EC=82=AC=EC=9D=B4= =EC=9D=98 -=EB=8F=99=EA=B8=B0=ED=99=94=EC=97=90 =EB=9D=BD=EC=9D=84 =EC=82=AC=EC=9A=A9= =ED=95=98=EC=A7=80 =EC=95=8A=EA=B3=A0 =EA=B5=AC=ED=98=84=ED=95=98=EB=8A=94= =EB=8D=B0=EC=97=90 =EC=82=AC=EC=9A=A9=EB=90=A0 =EC=88=98 =EC=9E=88=EC=8A=B5= =EB=8B=88=EB=8B=A4. =EB=8D=94 =EC=9E=90=EC=84=B8=ED=95=9C =EB=82=B4=EC=9A= =A9=EC=9D=84 -=EC=9C=84=ED=95=B4=EC=84=A0 =EB=8B=A4=EC=9D=8C=EC=9D=84 =EC=B0=B8=EA=B3=A0= =ED=95=98=EC=84=B8=EC=9A=94: - - Documentation/core-api/circular-buffers.rst - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D -=EC=B0=B8=EA=B3=A0 =EB=AC=B8=ED=97=8C -=3D=3D=3D=3D=3D=3D=3D=3D=3D - -Alpha AXP Architecture Reference Manual, Second Edition (Sites & Witek, -Digital Press) - Chapter 5.2: Physical Address Space Characteristics - Chapter 5.4: Caches and Write Buffers - Chapter 5.5: Data Sharing - Chapter 5.6: Read/Write Ordering - -AMD64 Architecture Programmer's Manual Volume 2: System Programming - Chapter 7.1: Memory-Access Ordering - Chapter 7.4: Buffering and Combining Memory Writes - -ARM Architecture Reference Manual (ARMv8, for ARMv8-A architecture profile) - Chapter B2: The AArch64 Application Level Memory Model - -IA-32 Intel Architecture Software Developer's Manual, Volume 3: -System Programming Guide - Chapter 7.1: Locked Atomic Operations - Chapter 7.2: Memory Ordering - Chapter 7.4: Serializing Instructions - -The SPARC Architecture Manual, Version 9 - Chapter 8: Memory Models - Appendix D: Formal Specification of the Memory Models - Appendix J: Programming with the Memory Models - -Storage in the PowerPC (Stone and Fitzgerald) - -UltraSPARC Programmer Reference Manual - Chapter 5: Memory Accesses and Cacheability - Chapter 15: Sparc-V9 Memory Models - -UltraSPARC III Cu User's Manual - Chapter 9: Memory Models - -UltraSPARC IIIi Processor User's Manual - Chapter 8: Memory Models - -UltraSPARC Architecture 2005 - Chapter 9: Memory - Appendix D: Formal Specifications of the Memory Models - -UltraSPARC T1 Supplement to the UltraSPARC Architecture 2005 - Chapter 8: Memory Models - Appendix F: Caches and Cache Coherency - -Solaris Internals, Core Kernel Architecture, p63-68: - Chapter 3.3: Hardware Considerations for Locks and - Synchronization - -Unix Systems for Modern Architectures, Symmetric Multiprocessing and Cachi= ng -for Kernel Programmers: - Chapter 13: Other Memory Models - -Intel Itanium Architecture Software Developer's Manual: Volume 1: - Section 2.6: Speculation - Section 4.4: Memory Access base-commit: 7f3c3a0a9103dc92c823f27db3284ac2914e7558 --=20 2.47.3