GithubHelp home page GithubHelp logo

Supporting TSO about view-hw HOT 9 CLOSED

jeehoonkang avatar jeehoonkang commented on August 22, 2024
Supporting TSO

from view-hw.

Comments (9)

kyeongmincho avatar kyeongmincho commented on August 22, 2024

step 1: rmw 추가

  • step_rmw 추가 (* NOTE: ARM development assumes absence of instr_rmw *)
  • ./build.sh 되도록 수정

step 2: x86 axiomatic semantics 정의

  • (* NOTE: x86 development assumes absence of exclusive load/store *)
  • isb = nop, dmb rr, rw = nop, dmb ww = sfence, dmb wr+ww = mfence, dmb wr,!ww = nop?
  • 일단 ARM copy-paste로 만들고, 나중에 x86/ARM 공통인 것 묶어서 refactoring
  • x86 axiomatic: 결과보고서에 모델 있음

step 3: x86 promising semantics 정의

  • x86 promising: 정리된 모델 없음

from view-hw.

jeehoonkang avatar jeehoonkang commented on August 22, 2024

@drzix

  • #5 머지했습니다.
  • step 2 진행 부탁드립니다.

from view-hw.

kyeongmincho avatar kyeongmincho commented on August 22, 2024
  • step 2 처음부터 다시 (axiomatic.v 복사)
  • read/write ord 지운다
  • write/write ex 지우면서 update 추가
    • is_reading, is_writing에 업데이트 추가

from view-hw.

kyeongmincho avatar kyeongmincho commented on August 22, 2024

ALocal.step's Event

  • ordr, ordw는 모두 pln으로만 (ordr=acq, ordw=rel)
  • fence는 모두 dmb.rr+rw+wr+ww

from view-hw.

kyeongmincho avatar kyeongmincho commented on August 22, 2024

TSO Axiomatic

let obs = rfe | fr | co
let dob = ([W U U U R]; po; [W U U U R]) \ (W * R)
let bob = [E]; po; [MF]; po; [E]
let ob = obs | dob | bob
acyclic po-loc | fr as internal
acyclic ob as external

from view-hw.

kyeongmincho avatar kyeongmincho commented on August 22, 2024

rfi가 TSO에 없는 이유

예시 1

x = 1    // (1)
r = x    // (2)
r = y    // (3)

(2), (3)은 tso가 있다.
이 때 (1), (2)가 tso가 있다면, (1), (3)도 tso가 생겨야 하는데 이건 모순이다.

예시 2 (store buffering)

T1

x = 1    // (1.1)
r = x    // (1.2)
r = y    // (1.3)

T2

y = 1    // (2.1)
r = y    // (2.2)
r = x    // (2.3)

@jeehoonkang 여기서 cycle이 생기는 이유를 한 번만 더 설명해주시겠습니까....

from view-hw.

jeehoonkang avatar jeehoonkang commented on August 22, 2024
  • 예시는 하나입니다. T1, T2 있는 예시
  • "예시 1"에서 말한 것처럼, rfi <= tso라면 (1) tso (2)이고, RR로부터 (2) tso (3) 입니다.
  • 그런데 "예시 2"에서 말한 것처럼 1.3 -> 2.1, 2.3 -> 1.1 사이에 tso가 있습니다. rf <= obs <= ob= tso.
  • 그러므로 cycle이 생겨 모순.

--

예시 1에서 "... 이건 모순이다"는 말은 나올 수 없습니다. 모순인 이유를 설명하지 못했기 때문에..

from view-hw.

jeehoonkang avatar jeehoonkang commented on August 22, 2024

아 그리고 위 예제는 별개 issue로 만들어주세요. (적당한 tag 붙이고 close해주세요.)

from view-hw.

kyeongmincho avatar kyeongmincho commented on August 22, 2024

step 3: x86 promising semantics 정의

  • 기존 ARM의 Promising.v 복사
  • 필요 없는 것 지우기 (exbank, promise, register view, cap view)

from view-hw.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.